ダーリンの頭ン中


小栗 左多里 (著), トニ-・ラズロ (著)
出版社: メディアファクトリー ; ISBN: 4840112266 ; (2005/03/04)

オランダ語では「@」を「ゆれる猿」というらしい。へー

トニー「ところで日本では『#』を『シャープ』だって思ってるんだよね…」

そうじゃないの? だってマイクロソフトがJava(コーヒー?)を飲み込んで作った言語「シー シャープ」の「シャープ」は「#」じゃん。この記号(U+0023)は音楽記号♯(U+266F)じゃないぜ(現在はユニコードの時代)。

実はC♯(U+266F)なのかと思って検索しても見つからない
http://www.google.com/search?hl=en&q=C%E2%99%AF
(♯のUTF-8コードはE299AF。URIでエスケープしなければならないあほな言語は少ない。ほかにはC++が有名)。

やっぱりただの「#」(U+0023)だよなと思って検索すると見つかる。
http://www.google.com/search?hl=en&q=C%23

だからこの言語は、「シーナンバー」とか「シーハッシュ」、「シーパウンド」とか呼ばれるべきなんじゃないかなあ。C hashなんていいじゃん。

でも、もしかしてマイクロソフト的には「#」(U+0023)はシャープなのかもと思って、「Code Pages」で調べてみても、やっぱりはNumber Signとしか書かれていない。ちなみに、シャープ(「♯」(U+266F))が登録されているのって、CP932(いわゆるWindows-31J、いわゆるShift_JIS)だけじゃないか!

この先何が起こるかは歴史から予想できる。

階層的ファイルシステムの導入時にマイクロソフトは、Unixで使われていたスラッシュ(0x2F)ではなく、バックスラッシュ(0x5C)を区切り記号として採用した(スラッシュはオプション指定のための文字だった)。悪いことに、日本では0x5Cに通貨記号(円記号)が割り当てられていた。たとえば、Shift_JISの文章中の0x5Cは円記号を意味する。IANAによれば、Shift_JISはJIS X 0208で規定されていて、JIS X 0208によればビット組み合わせ21~7Eの1バイト符号の領域には、JIS X 0201のラテン文字用図形文字集合の2/1~7/14を割り当てるとあり、JIS X 0201によれば0x5Cは円記号なのだ。

まじめにやるなら、0x5Cを含むShift_JISのファイルをUnicodeで保存し直したら、バックスラッシュ(U+005C)ではなく円記号(U+00A5)にならなければならないのかもしれないが、現実がほとんどそうなっていないのは、世に言う「Shift_JIS」は実はWindows-31J(あるいはCP932)だから。Windows-31Jの0x5CはU+005C(ただし、括弧付けでYEN SIGNとか書いてあって、字形も円記号になっている)。

ユニコードにおいて、円記号(U+00A5)とバックスラッシュ(U+005C)は区別されていて、MS明朝やMSゴシックなど一部のフォントを除けば、適切な字形が格納されている。わけがわからないのは、Times New RomanやArialなど、適切な字形が格納されているフォントでバックスラッシュを表示しようとしているにもかかわらず、円記号が表示されてしまうケースがあることだ。Microsoft製品でそれが起こる。

まず、Wordを起動する。フォントをTimes New Romanにする。IMEパッドを起動して文字一覧モードにし、表示フォントをTimes New Romanにする。UnicodeのU+005Cを探して(バックスラッシュ)入力すると、表示は円記号になってしまうのだ! 内部的に円記号(U+00A5)になってしまったわけではなく、見た目だけが円記号になっていることに注意(テキストで保存すればわかる)。フォントによっては大丈夫だったりするから、追求すべきことはまだ残っている(Microsoft製品に含まれるフォントだと見た目が変わってしまう、という理解でいいのだろうか)。

「ツール→オプション→互換性→バックスラッシュを円記号に変換する」をオフにすれば(「バックスラッシュの見た目を円記号にする」が正しいのだが)、Wordでならバックスラッシュの字形を表示できるようになる。Word 2007の場合は「Wordのオプション→詳細設定→レイアウトオプション→バックスラッシュを円記号に変換する」、Word 2010の場合は「ファイル→オプション→詳細設定→レイアウトオプション→バックスラッシュを円記号に変換する」。この設定項目はPowerPointには無い。「Microsoft Office 2010 言語設定」で編集言語を英語にしてしまえば、PowerPointも救われる(日本語の文章が校正されなくなるということはないようだ)。

同じ形で表示される円記号とバックスラッシュを何の違和感もなく切り替えられる人は、「二重思考」の達人だと思う。きっと、オーウェルの世界でも生きていける。

シャープに戻ろう。もうわかるよね。Microsoftの製品が普及した暁には晴れて、Number Signはシャープになるんだよ。