なかむら(う)さん,こんばんわ,

作者がポストしたチケットと,それに対するなかむら(う)さんのコメントを拝見しました.Ruby3ではdefault_externalがUTF-8になりそうなことも理解しました.

確かに,この作者の住む世界(欧州)では,複数の言語が多様な文字セットを使って情報のやり取りをしていることは容易に想像されます.例えばEU政府内部の文書マネジメントが一つの典型でしょう.そこでは各国別のエンコーディングを使い分けることなどできないわけで,当然Unicodeが採用され,符号化方式としてはUTF-8が最適でこれしかない,となることはよく理解できます.

しかし,この作者の実装は現在のRubyレファレンスマニュアルの記述とは食い違っているわけで,この非互換性を見逃すことはできません.この作者のRubyの使い方では違いは顕在化しないのでしょうが,私のようにWindowsの素のコマンドプロンプト上でRubyを動かして入出力を確認する者にとっては,この非互換性はただちに顕在化します.

Ruby2では変更するつもりはないというなかむら(う)さんのコメントも,ありがたく読ませていただきました.Rubyinstaller2はその利便性から使い始めるつもりですが,過去の自作のスクリプトには少々修正を加えなければならなくなりました.でもこれは良しとしましょう.

私は別にUnicodeが嫌いなわけではなく,UTF-8で書いたドキュメントも多くあり,特にLaTeXのソースでは多言語を同居させるために大変便利に使っています.しかし,今回の変化のような,現用環境で不都合が発生してしまう非互換性は勘弁してほしいと思います.

将来,Ruby3がリリースされる頃には,Windowsの各種ツールもUTF-8対応が完了し,不都合なく使えるようになっていることを願っています.

2017年4月20日 23:47 U.NAKAMURA <usa / garbagecollect.jp>:

> こんにちは、なかむら(う)です。
>
> In message "[ruby-list:50517] Re: Rubyinstaller2ではEncoding.
> default_externalがUTF-8に決め打ち"
>   on Thu, 20 Apr 2017 14:59:38 +0900, main / hhiro.net wrote:
> > ちなみに、作者が理由まで明確に書いていたわけでないので確実なことは言えないですが、作者がEncoding.default_
> externalをUTF-8にするようにしたのは、MSYS2ベースに変更した結果なのではないかと推測しています。
>
> 偶然なのか何らかの関連があるのかは知りませんが、ちょうど先ほど
> RubyInstaller2の作者が"Set Encoding.default_external to UTF-8 on Windows"
> というFeatureチケットを作っておられます。
> ( https://bugs.ruby-lang.org/issues/13488 )
>
> それによりますと(引用中の改行は引用者による挿入)、
>
> | 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.
>
> ということだそうですので、作者氏の観測される世界においては、
> UTF-8以外のエンコーディングを使う人が単に存在しない、というのが
> 理由の模様です。
>
>
> それでは。
> --
> U.Nakamaura <usa / garbagecollect.jp>
>
>


-- 
俊(とし)
* 望湖庵日記 http://griffin.cocolog-nifty.com/lakesidedairy/