2016-03-28 19 views
1

Elixir'deki ikili ve dizgiler hakkında kafam karıştı. Benim bir fonksiyonum var. Bu, bir dizeyi temsil eden bir karakter kodları ikili döndürür, ancak bu dizeyi okunabilir bir şekilde nasıl yazdıracağımı anlayamıyorum. İkilinin bir karakter listesine dönüştürülmesini, daha sonra karakter listesini numaralandırmayı ve her karakteri bir dizgeye dönüştürmeyi düşünüyordum, ama bu pek çok işe benziyor. Daha iyi bir yolu var mı?Kömür kodları okunabilir dizgiden mi?

+2

söz konusu kodunu yapıştırın deneyin. – Istvan

+0

@Brandon'a yanıt vermenin yanı sıra, lütfen benzer soruya verdiğim yanıtı inceleyin: http://stackoverflow.com/questions/36094791/shell-represents-binary/36099186#36099186 Sonunda, IO.inspect binary [ {: binaries,: as_strings}]. – tkowal

cevap

4

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

Ayrıca: I IO.inspect a, [{: binaries,: as_strings}] ', yazdırılamayan karakterlerden kaçar. – tkowal

+0

Hey @tkowal, bunun nasıl çalıştığını sormak ister miydi? Elixir’de yeniyim. Liste "incelemek" için bir argüman mı? – KingDan

+0

@KingDan Evet, denetlemek için ikinci isteğe bağlı argüman seçenekleri listesi: http://elixir-lang.org/docs/stable/elixir/Inspect.Opts.html – tkowal