Forum: Ruby-dev String#encode でハングル文字を UTF8-MAC から UTF-8 へ変換できない

6e8aca910e7ee095397d3b90acb25f6c?d=identicon&s=25 Watson (Guest)
on 2013-09-01 10:40
(Received via mailing list)
Watson $B$H?=$7$^$9!#(B

$B0JA0!"(BRuby-list $B$N(B
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/...
$B$G$*J9$-$7$?$N$G$9$,!"$$$m$$$m;n$7$F$_$?$H$3$m(B
String#encode $B$G%O%s%0%kJ8;zA4HL$r(B UTF8-MAC $B$+$i(B UTF-8
$B$KJQ49$7$?:]!"(B
$B4|BT$9$k%P%$%HNs$K$J$j$^$;$s$G$7$?!#(B

Iconv
$B%i%$%V%i%j$rMQ$$$FJQ49$7$?:]$K$O4|BT$9$k%P%$%HNs$KJQ49$5$l$F$$$k$h$&$G$7$?!#(B

String#encode $B$G%O%s%0%kJ8;z$r(B UTF8-MAC $B$+$i(B UTF-8
$B$XJQ49$G$-$J$$$N$O;EMM$J$N$+(B
$B3NG'$7$?$/%a!<%k$7$^$7$?!#(B


$B;n9T:x8m$K;HMQ$7$?%U%!%$%k$O(B
https://github.com/Watson1978/ruby_string_encode
$B$K$4$6$$$^$9!#(BObjective-C $B$N(B API $B$rMQ$$$F(B UTF8-MAC
$B$r:n@.$7(B
String#encode $B$H(B Iconv $B$G$=$l$>$l(B UTF-8
$B$XJQ49$7<B83$7$^$7$?!#(B

$B$h$m$7$/$*4j$$$$$?$7$^$9!#(B
F1d6cc2b735bfd82c8773172da2aeab9?d=identicon&s=25 Nobuyoshi Nakada (nobu)
on 2013-09-02 08:53
(Received via mailing list)
(13/09/01 17:39), Watson wrote:
> $B0JA0!"(BRuby-list $B$N(B
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/...
> $B$G$*J9$-$7$?$N$G$9$,!"$$$m$$$m;n$7$F$_$?$H$3$m(B
> String#encode $B$G%O%s%0%kJ8;zA4HL$r(B UTF8-MAC $B$+$i(B UTF-8
$B$KJQ49$7$?:]!"(B
> $B4|BT$9$k%P%$%HNs$K$J$j$^$;$s$G$7$?!#(B

2.1$B$G=$@5$7$?(BDir#each$B$N%P%0$N%P%0$G$O$J$$$+$H;W$$$^$9!#(B
6e8aca910e7ee095397d3b90acb25f6c?d=identicon&s=25 Watson (Guest)
on 2013-09-02 09:22
(Received via mailing list)
Watson $B$H?=$7$^$9!#(B

$B$4JVEz$"$j$,$H$&$4$6$$$^$9!#(B

$B;n9T$7$?4D6-$r5-=R$7K:$l$F$*$j$^$7$?!#(B
Mac OS X 10.8 $B>e$G(B Ruby 1.9.3-p448 $B$H(B 2.0.0-p247
$B$rMQ$$$F;n$7$?$@$1$G(B
2.1 $B$G$O;n$7$F$*$j$^$;$s$G$7$?!#(B

1.9.x $B$+$i4{$K(B String#encode $B$G%O%s%0%kJ8;z$r(B UTF8-MAC $B$+$i(B
UTF-8 $B$KJQ49(B
$B$G$-$J$$$h$&$K8+$($^$7$?$N$G!";EMM$J$N$+%P%0$J$N$+$r3NG'$7$?<!Bh$G$"$j$^$9!#(B

$B0J>e!"$h$m$7$/$*4j$$$7$^$9!#(B


2013$BG/(B9$B7n(B2$BF|(B 15:53 Nobuyoshi Nakada <nobu@ruby-lang.org>:
9361878d459f1709feec780518946ee5?d=identicon&s=25 NARUSE, Yui (Guest)
on 2013-09-02 16:21
(Received via mailing list)
$BMW$9$k$K(B
"\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}"
$B$H$J$C$FM_$7$$$H$3$m!"$=$&$J$i$J$$!"$H$$$&OC$G$9$h$M!#(B

Ruby 1.9/2.0 $B$N(B UTF8-MAC $B$NJQ49%F!<%V%k$O8E$$(B Mac OS X
$B$N%G!<%?$K4p$E$$$F$$$k$N$G%O%s%0%kEy$rJQ49$7$^$;$s!#(B
2.1 $B$G$O:G?7$N<BAu$K4p$E$/$h$&$K$7$h$&$H;W$C$F$$$^$9!#(B

$B$A$J$_$K!"(B2.0 $B$G$O(B iconv.gem $B$H$$$&$b$N$,;H$($^$9$,!"(B
$B:#8=:_$N(B 2.1 $B$N(B Core Services $B%Y!<%9$N<BAu$b(B iconv $B$b(B
HFS+ $B$N5sF0$H0c$&$N$G%P%0$C$F$^$9!#(B

2013$BG/(B9$B7n(B2$BF|(B 16:21 Watson <watson1978@gmail.com>:
6e8aca910e7ee095397d3b90acb25f6c?d=identicon&s=25 Watson (Guest)
on 2013-09-02 16:35
(Received via mailing list)
了解しました。
ありがとうございます。


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>:
>
>> > 期待するバイト列になりませんでした。
>>
>> 2.1で修正したDir#eachのバグのバグではないかと思います。
>>
>>
>



--
NARUSE, Yui <naruse@airemix.jp>
This topic is locked and can not be replied to.