Thursday, December 17, 2009

見事にハマった、Macの日本語環境でのプログラミングで陥るワナ

ちょっと簡単なプログラムのテストで途中経過を出力したかったんだけど
なんか "¥n" で改行できないんですよ。
出力した文字列が全部繋がって出力されちゃう感じ。

改行コードが違うからか?
と思って "¥r" とか "¥x0d" "¥0x0a" とかもことごとく駄目。

とりあえずそんなに出力する内容が多いわけじゃないので
まずは、テストしたい内容は先に終えてしまう。

で、問題の改行できない件。
調べてみると、Mac(OS X以降)の日本語キーボードでは¥キーを打つと
ASCIIのバックスラッシュ"\" 0x5c ではなく
西ヨーロッパのISO-8859-1やUnicodeの"¥"記号 0xa5が入力されるらしい。
なのでエスケープ文字として解釈されず、普通に出力されてしまったと。

なるほど…紛らわしい。

ことえりの設定で変更できるとのことなので、バックスラッシュが入力できるようにしてしまった。

"Option"キー+¥キーで、設定と逆の文字も入力できる。
(Google 日本語入力では、この設定は効かない模様
ていうか日本語入力の設定項目ではなく、キーボードの設定に入れるべきだと思うんだよね > Appleさん)

いや、わかってしまうと両方打ち分けれるこっちの方が好きだけどね。
それにしても紛らわしいよ…

Macが悪いわけではなく、先人が"¥"記号を0x5cにマッピングしてしまったことが
そもそもの混乱の元なんだよね。

No comments:

Post a Comment