だから私はバイナリを文字列に変換しようとしています。このコード:
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 リトル エンディアンとしてエンコードされた Unicode バイナリ」であることがわかりました (こちらを参照してください: http://www.erlang.org/doc/apps/odbc/odbc.pdf pg. 9 re: SQL_WVARCHAR) 実際には問題は変わりませんが、コンテキストが追加されます。