An addendum: the rdoc for IO.new specifies that `external_encoding:
?-`  should set the external encoding of the stream to
Encoding.default_external, but IO.new, Kernel.open, etc., all raise an
ArgumentError in this instance.