From: Brian Candler Date: 2010-03-12T00:07:20+09:00 Subject: Re: reading an UTF-8 encoded file If forcing the encoding of individual strings makes Ruby output them differently, then I expect that STDOUT must have an external encoding set. Try this: p STDOUT.external_encoding What do you get? If you get something other than nil, it means that puts will transcode characters from the tagged encoding to this encoding. In ruby 1.9, STDOUT.external_encoding is nil unless you set it explicitly. >> STDOUT.external_encoding => nil >> Encoding.default_external => # >> RUBY_DESCRIPTION => "ruby 1.9.2dev (2009-07-18 trunk 24186) [i686-linux]" Perhaps the version of 1.9.0 which macruby forked from was different in this regard though. -- Posted via http://www.ruby-forum.com/.