[#44861] Ruby 1.9のARGVのエンコーディング — rubikitch@...

るびきちです。

17 messages 2008/04/26
[#44862] Re: Ruby 1.9のARGVのエンコーディング — Yukihiro Matsumoto <matz@...> 2008/04/26

まつもと ゆきひろです

[#44863] Re: Ruby 1.9のARGVのエンコーディング — "NARUSE, Yui" <naruse@...> 2008/04/26

成瀬です、パッチ用意してから投げようと思ったら出遅れた、

[#44864] Re: Ruby 1.9のARGVのエンコーディング — Yukihiro Matsumoto <matz@...> 2008/04/26

まつもと ゆきひろです

[#44865] Re: Ruby 1.9のARGVのエンコーディング — "U.Nakamura" <usa@...> 2008/04/28

こんにちは、なかむら(う)です。

[#44866] Re: Ruby 1.9のARGVのエンコーディング — "NARUSE, Yui" <naruse@...> 2008/04/28

成瀬です。

[#44868] Re: Ruby 1.9のARGVのエンコーディング — "U.Nakamura" <usa@...> 2008/04/30

こんにちは、なかむら(う)です。

[ruby-list:44874] Re: NKFでの文字変換について

From: "NARUSE, Yui" <naruse@...>
Date: 2008-04-30 15:39:16 UTC
List: ruby-list #44874
成瀬です。

ishida@topics.or.jp wrote:
> NKFで"—"をUTF−8(0xE28095)からUTF−16LEに変換したときに、
> "—"(0x2015)に変換されずに、"?"(0x2014)に変換されます。
> ※ソースコードは以下です。
> 
> バグだと思うのですが?
> どうしたら良いでしょうか、教えてください。

UTF-8 から UTF-16 への変換等における罠だとは思っているのですが、
一応仕様という認識です。

理由としては nkf ではこれを始めとして、CP932 拡張周りの文字を中心に、
日本語文字コードと Unicode で多対一対応な文字が多々あるのですが、
これが Unicode 間での変換でも動いているからです。

とりあえず意図しているであろう動作にするためには、
-xm0 --no-best-fit-chars を加えればよいです。

utf16le = NKF.nkf("-xm0 --no-best-fit-chars --ic=UTF-8 --oc=UTF-16LE", utf8)
が見やすいかな

-- 
NARUSE, Yui  <naruse@airemix.jp>

In This Thread