[#47680] String#encode でハングル文字を UTF8-MAC から UTF-8 へ変換できない — Watson <watson1978@...>
Watson と申します。
5 messages
2013/09/01
[#47729] [ruby-trunk - Bug #8964][Assigned] [BUG](%p is T_NONE) occurs while marking VM stack — "ktsj (Kazuki Tsujimoto)" <kazuki@...>
5 messages
2013/09/28
[ruby-dev:47685] Re: String#encode でハングル文字を UTF8-MAC から UTF-8 へ変換できない
From:
"NARUSE, Yui" <naruse@...>
Date:
2013-09-02 14:20:04 UTC
List:
ruby-dev #47685
要するに
"\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 <watson1978@gmail.com>:
> 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 <nobu@ruby-lang.org>:
>
>> (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 <naruse@airemix.jp>