[ruby-dev:47686] Re: String#encode でハングル文字を UTF8-MAC から UTF-8 へ変換できない

From: Watson <watson1978@...>
Date: 2013-09-02 14:35:23 UTC
List: ruby-dev #47686
了解しました。
ありがとうございます。


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 <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>

In This Thread

Prev Next