円記号問題の歴史をまとめました
ISO/IEC 646 の誕生
元々、文字コードの国際規格 ISO/IEC 646 では 0x5C
は国ごとに自由に設定してよい領域 だった
- アメリカ(ascii
) では、 0x5C
をバックスラッシュ
- 日本(JIS X 0201
) では、0x5C
を ¥
アメリカで 0x5C
を特殊な用途に使う例が発生
なんでわざわざ国ごとに異なる文字を特殊な用途つかうの...
そのため、日本では 0x5C
に2つの意味が...!
日本で SHIFT_JIS が生まれる
JIS X 0201
ベースなので、0x5C
は¥
のまま
欧州で文字コード規格 ISO/IEC 8859-1(Latin-1) が作られる
-
¥
は0xA5
世界の文字コードを統一すべく、unicode が生まれた
-
U+005C
は バックスラッシュ -
¥
は、U+00A5
windowsのunicode対応が始まる
そうだ! 💡 0x5C
も 0xA5
も ¥
を表示しよう💡
- なおキーボードで
¥
を入力すると0x5C
が入力される
そして悲劇へ...
日本語版windowsで円記号を入力しても、他の環境ではバックスラッシュに見える
見た目上バックスラッシュか円記号かわからないので、コードを書く時に混乱したり予期せぬエラーが発生する