0
私はバイナリを持っていると私は最初の1つのEJを解決するためのパターマッチングを使用:バイナリの残りの部分をエリクシールの文字列に変換するには?
<<code:: binary-size(2), _::binary-size(1), rest::binary>> = line
まだバイナリ形式で残りの変数、私は、文字列formattでそれをしたいですか?
私はバイナリを持っていると私は最初の1つのEJを解決するためのパターマッチングを使用:バイナリの残りの部分をエリクシールの文字列に変換するには?
<<code:: binary-size(2), _::binary-size(1), rest::binary>> = line
まだバイナリ形式で残りの変数、私は、文字列formattでそれをしたいですか?
これは表現の問題です。 IExコンソールは文字でデータを表示することができず、コードポイントとして印刷しました。バイナリが、例えば、 \0
char。
見て、のは非常に先頭または何を持ってみましょう:
iex> <<57, 56, 52, 52, 49, 48, 68, 48, 66, 49, 83, 67, 73, 32, 32, 32, 32, 32, 32, 32, 49>>
#⇒ "984410D0B1SCI 1"
今度はそこにゼロバイトを入れてみましょう:さらに驚くべき表現グリッチ
iex> <<57, 0, 52>>
#⇒ <<57, 0, 52>>
があるかもしれません:
iex> [7, 8, 9, 10]
#⇒ '\a\b\t\n'
今、IExはcharリストを見て、それをcharリストとして出力します。 '\a'
は7
、'\b'
は8など
「文字列形式」とはどういう意味ですか?ストリングはエリクサーのバイナリです。 'line'と現在と期待される出力の値の例を挙げられますか? – Dogbert
たとえば、私が休憩を印刷するとき、値はファイルから読み込まれたバイナリであり、コード変数は変換され、残りの部分は変換されませんでした。 – llCastro
例:{"SP"、<< 57,56,52 、52,49,48,68,48,66,49,83,67,73,32,32,32,32,32,32,32,49,48,49,49,48,51,51,51 、52,57,51,52,53,32,32,32,32,32,50,48,49,54,49,50,51,49,32、... >>} – llCastro