2017-04-12 6 views
0

私はバイナリを持っていると私は最初の1つのEJを解決するためのパターマッチングを使用:バイナリの残りの部分をエリクシールの文字列に変換するには?

<<code:: binary-size(2), _::binary-size(1), rest::binary>> = line 

まだバイナリ形式で残りの変数、私は、文字列formattでそれをしたいですか?

+0

「文字列形式」とはどういう意味ですか?ストリングはエリクサーのバイナリです。 'line'と現在と期待される出力の値の例を挙げられますか? – Dogbert

+0

たとえば、私が休憩を印刷するとき、値はファイルから読み込まれたバイナリであり、コード変数は変換され、残りの部分は変換されませんでした。 – llCastro

+0

例:{"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

答えて

0

これは表現の問題です。 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など

関連する問題