Mac からファイルのコピーしたら「つのだ☆ひろ」が文字化けする
例の玄箱に MacOS X なマシンから iTunes のファイルを rsync でコピーしたのですが、ディレクトリ名で「つのだ☆ひろ」とか「加藤いづみ」とか「モーニング娘」とかの濁点のあるファイル名が UTF-8 で「つのた??☆ひろ」とかに文字化けしてしまっている。んで、そのまま iconv -f utf-8 -t euc-jp ってやると iconv stop するし。で、ちと調べてみましたよ。 文字列の中身はこのような感じでしたよ。
|つ |の |た |?? |☆ |ひ |ろ
UTF-8 |e3 81 a4|e3 81 ae|e3 81 9f|e3 82 99|e2 98 86|e3 81 b2|e3 82 8d
UCS-2 |30 64 |30 6e |30 5f |30 99 |26 06 |30 72 |30 8d
んで、この U+3099 ってなにさ? ってことで調べてみたところ
$ grep ^3099 UnicodeData-4.1.0d8.txt
3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;;
あ、Unicode にある2つをあわせて1文字になる、ってやつね。 で、調べた結果なのだが、Windows や gconv (glibc) とかは precomposed characters にのみ対応しているみたいで、Mac は 本体 + 合成文字 になるみたいだ。 何とかならないものか・・・。
でcombining char ってこのようなものがあるらしい。
302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;;
302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;;
302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;;
302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;;
302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;;
309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;;
コメント
コメントを投稿