Итак, я пытаюсь преобразовать двоичный код в строку. Этот код:
t = [{<<71,0,69,0,84,0>>}]
String.from_char_list(t)
Но я получаю это, когда я пробую это преобразование:
** (ArgumentError) argument error
(stdlib) :unicode.characters_to_binary([{<<70, 0, 73, 0, 78, 0>>}])
(elixir) lib/string.ex:1161: String.from_char_list/1
Я предполагаю, что < 70, 0 и т.д., вероятно, является списком графемов (это возврат из вызова API и API не является документированным), но мне нужно каким-то образом указать кодировку?
Я знаю, что, скорее всего, у меня нет чего-то очевидного (может быть, это не правильная функция для использования?), но я не могу понять, что делать здесь.
EDIT:
Для чего это стоит, двоичный код выше - это возвращаемое значение вызова Erdang ODBC. После немного большего копания я обнаружил, что рассматриваемый двоичный код на самом деле является "двоичным кодом Unicode, закодированным как UTF16 little endian" (см. Здесь: http://www.erlang.org/doc/apps/odbc/odbc.pdf стр. 9 re: SQL_WVARCHAR) На самом деле это не изменяет проблему, но добавляет некоторый контекст.