From: "usa (Usaku NAKAMURA)" Date: 2013-09-03T19:15:25+09:00 Subject: [ruby-core:56984] [ruby-trunk - Bug #8822] Incorrect encoding for ENV in Windows Issue #8822 has been updated by usa (Usaku NAKAMURA). Since Ruby 1.8 assumes the encoding of ENV is locale (or -K specified encoding), Ruby 1.9 also treats it as locale for compatibility. It was intentional decision, not bug. We were able to break compatibility at Ruby 2.0, but the work was not done. BTW, to be sure, the present behavior of Ruby 2.0 is wrong. It should be corrected. ---------------------------------------- Bug #8822: Incorrect encoding for ENV in Windows https://bugs.ruby-lang.org/issues/8822#change-41568 Author: davispuh (D��vis Mos��ns) Status: Assigned Priority: Normal Assignee: cruby-windows Category: Target version: ruby -v: ruby 2.0.0p247 (2013-06-27) [x64-mingw32] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN =begin When reading ENV and if it contains non-ASCII - string won't have correct encoding. In Ruby 2.0 we can force it to UTF8 (it doesn't matter what's windows encoding nor consoles) and it will be correct, but in Ruby 1.9 there's no way to correctly read it. Writing non-ASCII string to ENV is not possible at all neither of versions. Also Ruby1.9 fails to read ENV with name witch contains non-ASCII Here's (()) (basically set environment variable outside of ruby and in ruby print it out) Output on (()) and on (()) Seems it wasn't properly fixed in #5570 =end -- http://bugs.ruby-lang.org/