A String in Elixir is actually a UTF-8 encoded binary: https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html
So both of your results are binaries. One way to verify/play with this is to run
iex(30)> i "hello\n"
Term
"hello\n"
Data type
BitString
Byte size
6
Description
This is a string: a UTF-8 encoded binary. It's printed surrounded by
"double quotes" because all UTF-8 encoded codepoints in it are printable.
Raw representation
<<104, 101, 108, 108, 111, 10>>
Reference modules
String, :binary
Implemented protocols
Collectable, Ecto.DataType, Ecto.Queryable, IEx.Info, Inspect, List.Chars, Msgpax.Packer, Phoenix.HTML.Safe, Phoenix.Param, Plug.Exception, Poison.Decoder, Poison.Encoder, Slugify, String.Chars, Timber.Eventable
From there you can see the raw “binary” representation is <<104, 101, 108, 108, 111, 10>>
and if you enter that into an iEX prompt you get back the string “hello\n” (note: this only works for binaries that are valid UTF-8 and all the characters are printable)
iex(31)> <<104, 101, 108, 108, 111, 10>>
"hello\n"
So for some reason lynx is returning invalid UTF-8 when run as lynx --dump http://google.com
. To strip invalid characters you could do some processing like so:
iex(39)> {string, _} = System.cmd("lynx", ["--dump", "http://google.com"])
{<<10, 32, 32, 32, 83, 101, 97, 114, 99, 104, 32, 91, 49, 93, 73, 109, 97, 103,
101, 115, 32, 91, 50, 93, 77, 97, 112, 115, 32, 91, 51, 93, 80, 108, 97, 121,
32, 91, 52, 93, 89, 111, 117, 84, 117, 98, 101, 32, 91, ...>>, 0}
iex(40)> String.graphemes(string) |> Enum.filter(&String.valid?/1) |> Enum.join("") |> IO.puts
Search [1]Images [2]Maps [3]Play [4]YouTube [5]News [6]Gmail [7]Drive
[8]More
[9]Web History | [10]Settings | [11]Sign in
[12]Day 5 of the Doodle Snow Games!
_______________________________________________________
Google Search I'm Feeling Lucky [13]Advanced search
[14]Language tools
[15]Advertising Programs [16]Business Solutions [17]+Google
[18]About Google
2018 - [19]Privacy - [20]Terms
References
1. http://www.google.com/imghp?hl=en&tab=wi
2. http://maps.google.com/maps?hl=en&tab=wl
3. https://play.google.com/?hl=en&tab=w8
4. http://www.youtube.com/?gl=US&tab=w1
5. http://news.google.com/nwshp?hl=en&tab=wn
6. https://mail.google.com/mail/?tab=wm
7. https://drive.google.com/?tab=wo
8. https://www.google.com/intl/en/options/
9. http://www.google.com/history/optout?hl=en
10. http://www.google.com/preferences?hl=en
11. https://accounts.google.com/ServiceLogin?hl=en&passive=true&continue=http://www.google.com/
12. http://www.google.com/search?site=&ie=UTF-8&q=Winter+Olympics&oi=ddle&ct=doodle-snow-games-day-7-5009413877268480-lawcta&hl=en&kgmid=/m/03tng8&sa=X&ved=0ahUKEwi5q-6Bo6TZAhVY62MKHdNJB3wQPQgC
13. http://www.google.com/advanced_search?hl=en&authuser=0
14. http://www.google.com/language_tools?hl=en&authuser=0
15. http://www.google.com/intl/en/ads/
16. http://www.google.com/services/
17. https://plus.google.com/116899029375914044550
18. http://www.google.com/intl/en/about.html
19. http://www.google.com/intl/en/policies/privacy/
20. http://www.google.com/intl/en/policies/terms/
:ok