It strikes me as a bit "scary" to use system locale settings to
*arbitrarily* set Encoding.default_external

For example, I develop on windows (def: IBM437).
This means that if I want this to work cross platform I have to
specify IBM437 for every File.read (et al) that I use in my library.
So it is a bit scary.

Suggestion: default to UTF-8 *no matter where* then allow the user to
change it if they want something else.
Or even default to BINARY (ASCII-8BIT) unless they specify.  Most
users don't want/need encoding until they run into it--they can handle
it then.
Thoughts?
Thanks!
-r