From: rubikitch@... Date: 2007-11-29T01:02:34+09:00 Subject: [ruby-list:44283] Re: String#toeuc に関して質問です From: Subject: [ruby-list:44282] String#toeuc に関して質問です Date: Thu, 29 Nov 2007 00:50:48 +0900 るびきちです。 > プログラム実行時の$KCODEの値は、NONEです。 UTF-8文字列がスクリプトに含まれているので #!/usr/local/bin/ruby -Ku のように -Ku しておきます。 > 以下のプログラムを実行して、文字列"媚"をEUCの文字列に変換 > したいのですが、実行すると文字列が消えてしまいます。 > > require 'kconv' > > puts("'" + "媚".toeuc + "'") #=> '' > > > なぜこのような現象が起こるのでしょうか? String#toeucは内部でnkfを呼んで渡された文字コードを推測します。 しかし1文字だけだとどんな文字コードかわからないために判断のしようがないです。 NKFで「入力はUTF-8です」と教えてあげましょう。 #!/usr/local/bin/ruby -Ku require 'nkf' puts("'" + NKF.nkf("-We", "媚") + "'") -- rubikitch Blog: http://d.hatena.ne.jp/rubikitch/ Site: http://www.rubyist.net/~rubikitch/