まつもと ゆきひろです

一部順序を前後します。

In message "Re: [ruby-dev:36559] Re: Encoding.default_internal  	のためのパッチ"
    on Thu, 25 Sep 2008 17:07:34 +0900, Nobuyoshi Nakada <nobu / ruby-lang.org> writes:

|>              default_external   default_internal
|>   +-------+-------------------+-------------------+
|>   |  -L   |      locale       |      locale       |
|>   |-E :i  |      locale       |        i          |
|>   |-E e   |        e          |        e	  |
|>   |-E e:i |        e          |        i	  |
|>   |(なし) |      locale       |      UTF-8	  |
|>   +-------+-------------------+-------------------+
|
|default_internalなし、という指定はできないわけですか。

「default_internalがない」というのはどういうことかと考えると

  * 外部テキストをdefault_externalとして読み込み
  * 内部にdefault_externalエンコーディングを付加した文字列を
    取り込む

ということですから、「default_internalがない(現状)」と
「default_externalとdefault_internalが同じ」というのは同じこ
とだと思います。

|> 私には「internalを空にしたときにはdefaultを使う」と
|> 「default_internalはIOでinternalを指定しなかった場合のエンコー
|> ディングである」は同じ意味のように感じられますが。
|
|「:」があれば変換あり、なければそのままということです。

より簡潔な記法が推奨される方式を暗示することが多いわけですが、
default_internalが指定されているのにもかかわらず、外部エンコー
ディングを変換なしに読み込むということは(それがが異なっていた
場合)、結局どこかでencodeメソッドを呼ぶ必要があり、ソフトウェ
アトータルでの複雑性が増すため、あまり推奨したくありません。

|[ruby-dev:36552]にある、
|> ちょっと苦しいですが、
|> 
|>   open(path, "r:default_external:")
|
|をdefault_internalを使う指定として、
|
|  open(path, "r:external")
|
|は今までと同じく無変換でexternalとして読み込む、というのはどうで
|しょう。

|> -Eオプションは1度しか受け付けないことにしようと思っています。
|
|コマンドライン、RUBYOPT、shebangそれぞれで一度ずつ、でしょうか。

いえ、全体を通じて一度です。複数指定したら矛盾を解消する手段
がありませんから。

                                まつもと ゆきひろ /:|)