From: Watson Date: 2013-09-02T23:35:23+09:00 Subject: [ruby-dev:47686] Re: String#encode でハングル文字を UTF8-MAC から UTF-8 へ変換できない 了解しました。 ありがとうございます。 On 2013年9月2日 at 23:21:04, NARUSE, Yui (naruse@airemix.jp) wrote: 要するに "\u{110b}\u{1161}\u{11ab}\u{1102}\u{1167}\u{11bc}\u{1112}\u{1161}\u{1109}\u{1166}\u{110b}\u{116d}".encode("UTF-8","UTF8-MAC") => "\u{c548}\u{b155}\u{d558}\u{c138}\u{c694}" となって欲しいところ、そうならない、という話ですよね。 Ruby 1.9/2.0 の UTF8-MAC の変換テーブルは古い Mac OS X のデータに基づいているのでハングル等を変換しません。 2.1 では最新の実装に基づくようにしようと思っています。 ちなみに、2.0 では iconv.gem というものが使えますが、 今現在の 2.1 の Core Services ベースの実装も iconv も HFS+ の挙動と違うのでバグってます。 2013年9月2日 16:21 Watson : > Watson と申します。 > > ご返答ありがとうございます。 > > 試行した環境を記述し忘れておりました。 > Mac OS X 10.8 上で Ruby 1.9.3-p448 と 2.0.0-p247 を用いて試しただけで > 2.1 では試しておりませんでした。 > > 1.9.x から既に String#encode でハングル文字を UTF8-MAC から UTF-8 に変換 > できないように見えましたので、仕様なのかバグなのかを確認した次第であります。 > > 以上、よろしくお願いします。 > > > 2013年9月2日 15:53 Nobuyoshi Nakada : > >> (13/09/01 17:39), Watson wrote: >> > 以前、Ruby-list の >> > http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/49573 >> > でお聞きしたのですが、いろいろ試してみたところ >> > String#encode でハングル文字全般を UTF8-MAC から UTF-8 に変換した際、 >> > 期待するバイト列になりませんでした。 >> >> 2.1で修正したDir#eachのバグのバグではないかと思います。 >> >> > -- NARUSE, Yui