From: nobu@... Date: 2017-05-01T11:22:53+00:00 Subject: [ruby-core:80958] [Ruby trunk Feature#13488] Set Encoding.default_external to UTF-8 on Windows Issue #13488 has been updated by nobu (Nobuyoshi Nakada). naruse (Yui NARUSE) wrote: > If you want to change them, you should just change ruby as if it runs on `chcp 65001`: In the trunk, you don't have to change ruby source code. Just configure with `--enable-debug-env`, and include `codepage=65001` in the environment variable `RUBY_DEBUG`. ``` C:\Users\nobu\work\ruby\trunk\x64-mswin32_140>.\bin\ruby -e "p Encoding.default_external, Encoding.find('filesystem')" # # C:\Users\nobu\work\ruby\trunk\x64-mswin32_140>set RUBY_DEBUG=codepage=65001 C:\Users\nobu\work\ruby\trunk\x64-mswin32_140>.\bin\ruby -e "p Encoding.default_external, Encoding.find('filesystem')" # # ``` ---------------------------------------- Feature #13488: Set Encoding.default_external to UTF-8 on Windows https://bugs.ruby-lang.org/issues/13488#change-64624 * Author: larskanis (Lars Kanis) * Status: Rejected * Priority: Normal * Assignee: * Target version: ---------------------------------------- Currently Encoding.default_external is set to the local ANSI encoding of the Windows installation unless changed per option `-E`. This is cp850 for Western Europe. It should be changed to UTF-8. The current setting is a major interoperability issue and it is neither useful nor expected, because nobody seriously uses the ancient locale dependent cpXYZ encodings for file content. If a native encoding shall be used, it should be UTF-16 on Windows. However UTF-16 would make interoperability and compatibility even more difficult. So the only reliable choice for default_external is UTF-8, IMHO. This is already patched per [1] in the upcoming RubyInstaller-2.4 for Windows release. It additionally requires a few changes to MRIs encoding tests. [1] https://github.com/oneclick/rubyinstaller2/blob/master/recipes/compile/ruby-2.4.1/0005-utf-8-default-encoding.patch -- https://bugs.ruby-lang.org/ Unsubscribe: