From: naruse@... Date: 2019-12-09T10:21:55+00:00 Subject: [ruby-core:96156] [Ruby master Bug#15044] ENV encoding not UTF-8 by default Issue #15044 has been updated by naruse (Yui NARUSE). The assigned value to `ENV` are stored in the process's environment variable. The encoding of `ENV[key]` is set as locale. You can get the locale encoding by `Encoding.find("locale")` which is decided based on `Encoding.locale_charmap` which is affected by `ENV["LANG"]` and `ENV["LC_ALL"]`. Note that `ENV["PATH"]` is returned as filesystem encoding but it is the same as locale encoding on Unix. ---------------------------------------- Bug #15044: ENV encoding not UTF-8 by default https://bugs.ruby-lang.org/issues/15044#change-83030 * Author: lowang (Przemyslaw Wroblewski) * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux] * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- ~~~ $ irb 2.5.1 :001 > 'secret'.encoding => # 2.5.1 :002 > ENV['PASS'] = 'secret'; ENV['PASS'].encoding => # 2.5.1 :009 > ENV['PASS'] = '��' => "\u0141" 2.5.1 :010 > ENV['PASS'].encoding => # ~~~ I would expect all encodings to be **UTF-8** at all times -- https://bugs.ruby-lang.org/ Unsubscribe: