OSXでは半角¥マークとバックスラッシュは区別される

OSXのcocoaMySQLでmysqlに入れた半角の¥マーク(YEN SIGN)が、読み出すと 0xc2 0xa5 (UTF-8での YEN SIGN のコード)の2バイトになって出てくるという問題に直面。(サーバの文字コードはbinaryにしてある)

MySQLの0×5cが全角バックスラッシュに化ける という問題かと思ったら違った。OSX上で YEN SIGN を入力すると実際にはunicodeの0×00A5が入力される。0×5cを入力しようとしたら option を押しながら¥マークをおさないといけない。そうすると画面には実際にバックスラッシュが表示されて内部的にも0×5cが入力されている。

Windowsでは YEN SIGN が表示されているところは \x5c が入っているけどOSXでは違う、というお話でした。たしかによく考えると(0×5cを BACK SOLIDUS でなく YEN SIGN で表示するようになった経緯は知らないけど)ひとつのコードを2種類の全く違うグリフで表示したりするWindowsのほうがおかしいように思える。

もしかしたらcocoaMySQLのクライアント文字コードをutf-8以外にしてたら問題でなかったのかなー。 後で試す。


About this entry