サイログ。

~雑多な記事置き場~

Mac OS XのUTF-8は似て非なるモノ

以前、waturaさんから「ヒラギノのファイル名が開けない」というご指摘があったのですが、
調べてみると、なんともはや、WindowsLinuxとかで使っているUTF-8とは
ちょっと毛並みが違うモノらしいということが分かりました。
(もっとややこしい話になるかも知れないけど、とりあえず、この認識で置いとかないといつまで経っても次へ進めなさそう)

Mac OS Xでは、ファイル名の指定もその「毛並みが違う箇所」に思いっきり引っかかってしまうようで、
濁点が違うコードになっているというこが分かってきました。

[参考リンク]
http://fnya.cocolog-nifty.com/blog/2007/09/mac_os_x_utf8_9151.html
http://labs.unoh.net/2007/09/unicode-on-mac.html

解決方法としては、Iconv#convを使用する方法があるようです。

[参考リンク]
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/43355

そこで、miyako.rb で iconv 拡張ライブラリロードを追加して、以下のように修正してみました。

(旧)
fname = fname.toutf8 if Miyako.getOSName == "mac_osx" # MacOSXはパス名がUTF-8固定のため

(新)
fname = Iconv.conv("UTF-8-MAC", "UTF-8", fname.toutf8) if Miyako.getOSName == "mac_osx" # MacOSXはパス名がUTF-8固定のため

この修正はRC5に盛り込まれる予定です。