2016-03-28 16 views
1

Ich bin verwirrt über Binärdateien und Strings in Elixir. Ich habe eine Funktion. Das gibt eine Binärzahl von Zeichencodes zurück, die eine Zeichenfolge darstellen, aber ich kann nicht herausfinden, wie diese Zeichenfolge leserlich gedruckt wird. Ich dachte daran, die Binärdatei in eine Zeichenliste zu konvertieren, dann die Zeichenliste aufzulisten und jedes Zeichen in eine Zeichenkette umzuwandeln, aber das scheint eine Menge Arbeit zu sein. Gibt es einen besseren Weg?Binär von Charcodes zu lesbaren String?

+2

den Code in Frage Bitte einfügen. – Istvan

+0

Neben der Antwort von @Brandon finden Sie in meiner Antwort auf ähnliche Frage: http://StackOverflow.com/Questions/36094791/shell-represents-binary/36099186#36099186 Am Ende erwähne ich 'IO.inspect binary, [ {: binaries,: as_strings}] '. – tkowal

Antwort

4

Versuchen String.chunk/2

iex(1)> a = "Hello " <> <<0>> <> "World" 
<<72, 101, 108, 108, 111, 32, 0, 87, 111, 114, 108, 100>> 
iex(2)> String.chunk(a, :printable)  
["Hello ", <<0>>, "World"] 

http://elixir-lang.org/docs/stable/elixir/String.html#chunk/2

+1

Es gibt auch: 'IO.inspect a, [{: binaries,: as_strings}]', wodurch nicht druckbare Zeichen entfernt werden. – tkowal

+0

Hey @tkowal, wäre es in Ordnung zu fragen, wie das funktioniert? Ich bin neu in Elixir. Ist die Liste ein Argument zum "inspizieren"? – KingDan

+0

@KingDan Ja, das zweite optionale Argument von 'inspect' ist eine Liste von Optionen: http://elixir-lang.org/docs/stable/elixir/Inspect.Opts.html – tkowal