[#44237] Float を利用するRubyプログラム — SASADA Koichi <ko1@...>

 ささだです.

16 messages 2007/11/17
[#44241] Re: Float を利用するRubyプログラム — SASADA Koichi <ko1@...> 2007/11/19

 ささだです.

[ruby-list:44283] Re: String#toeuc に関して質問です

From: rubikitch@...
Date: 2007-11-28 16:02:34 UTC
List: ruby-list #44283
From: <cruby47@yahoo.co.jp>
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/

In This Thread