From: Takashi Tamura Date: 2009-07-25T17:25:43+09:00 Subject: [ruby-dev:38902] [Bug #924] encoding for stdio's チケット #924 が更新されました。 (by Takashi Tamura) 成瀬さんが以前書かれた以下の前提は変わったと思うのですが、 現在でも標準入出力を自動変換しない理由をもう少し詳しく書いていただけないでしょうか。 あと標準入出力を自動変換しない場合、非 ASCII 文字を標準出力に出力したい時には、 どのように書くのがベストプラクティスなんでしょうか。 > default_internal は導入されましたが、自動変換はデフォルトはオフになっています。 > このため、入力エンコーディングの自動変換はデフォルトだと働きません。 > この状態で、出力だけ自動変換をするというのはおかしいように思います。 今だと default_internal を指定しても標準入力は変換されませんが、ファイルの入力は変換されます。 $ echo $LANG ja_JP.eucJP $ nkf --guess t.txt EUC-JP $ cat e01.rb p $stdin.read.encoding p File.read('t.txt').encoding $ echo 漢字 | ruby-1.9 -vE :utf-8 e01.rb ruby 1.9.2dev (2009-07-24 trunk 24263) [i686-linux] # # ---------------------------------------- http://redmine.ruby-lang.org/issues/show/924 ---------------------------------------- http://redmine.ruby-lang.org