所以我正在尝试将二进制文件转换为字符串。这段代码:
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 没有完全记录)但是我需要以某种方式指定编码吗?
我知道我可能会遗漏一些明显的东西(也许这不是正确使用的功能?)但我似乎无法弄清楚该怎么做。
编辑:
值得一提的是,上面的二进制文件是 Erlang ODBC 调用的返回值。经过一番挖掘后,我发现有问题的二进制文件实际上是“编码为 UTF16 little endian 的 Unicode 二进制文件”(参见此处:http : //www.erlang.org/doc/apps/odbc/odbc.pdf 第 9 页re: SQL_WVARCHAR) 并没有真正改变问题,但它确实增加了一些上下文。