こんにちは。ゴトウと申します。 手元に入っていたruby 1.8.5 (2006-08-25) [i386-mswin32] で試してみましたが、同じくそうなります。 http://www2.ruby-lang.org/ja/man/?cmd=view;name=FAQ%3A%3A%C6%FC%CB%DC%B8%EC%A4%CE%BC%E8%A4%EA%B0%B7%A4%A4 にあるように require 'jcode' すると、#1でもうまく行きますね。 07/05/15 に Fujioka<fuj / rabbix.jp> さんは書きました: > 藤岡です。 > > 環境はdebian sarge+backportsの > ruby 1.8.5 (2006-08-25) [i386-linux]です。 > > #!/usr/bin/ruby -Ku > > def str_upcase(str) > oldkcode=$KCODE > $KCODE="UTF-8" > #1 result=str.tr("ャュョァィゥェォッ","ヤユヨアイウエオツ") > #2 result=str.tr("ャュョァィゥェォ","ヤユヨアイウエオ").gsub(/ッ/,'ツ')) > result.gsub!(/ | |\r|\n|\t/,'') > $KCODE=oldkcode > result > end > p str_upcase("ホウジョウ ソウウン") > > 以上のようなコードで#2は動作するのに > #1は文字化けします。 > ッが何か関係しているのか思ってはいるのですが、 > よくわかっていません。 >