もどる

もう少しお待ちください

ことの始まり

フォームに入力してメールで受け取っていたウェブページで、!! が ? に変わってしまうというご指摘を受けました。「iphone ビックリマーク」で検索をすると、iphoneでブログなどを更新する場合に起こるというような書き込みがいくつか見つかりました。あらためてそのページの?を検索すると!!がふさわしい所が多数ありました。

PCから半角!を2つ入れても?にならないので、まずはiphoneに!!という特殊な文字があるのではないかと、推測しました。

iphoneに限らず絵文字が機種依存だったものが、unicodeに登録されて統一されつつあることは聞いていました。でも、あまり興味はなく調べたことはありませんでした。iphoneもunicode対応にした時に互換性がなくなって混乱した話はたくさんあるのですが、どうも!!については絵文字ではないようです。

!!はU+203C

!!は!が2つですが、‼はunicode1文字です。多分この文字だったのではないかと予想してやってみると、確かに?になります。これだと入力していても、半角2つと区別がつかないでしょう。これが機種依存文字のように文字化けするとは思いもよらないと思います。

U+203Cあたりは一般句読点,通貨記号,矢印などの領域です。フォントがないわけでもなさそうですし、サロゲートペアの話とも関係ありません。フォームはutf-8で書かれていますから、これも問題が起こることはないでしょう。

cgiプログラム

フォームに使っているのはcgiのプログラムです。入力された文字列をメールで送信するものです。

メールは規約では7ビットコードで送ることになっています。古くから日本の文字はISO-2022-JPとよばれた方法で送信されていましたが、これは旧JIS(JIS X 0208)の範囲の文字までしか定義されておらず、U+203Cはその中にはありません。送受信の双方が新JIS(JIS X 0213)の文字を扱えるようになっていなければ文字化けが起こります。

新JISの文字をメールで送信するためのISO-2022-JP-2004という規格もありますが、送受信の双方で対応ができていなければならないので、なかなか普及していないようです。本校が利用しているレンタルサーバーのcgiプログラムは対応していないようです。


弘前学院聖愛中学高等学校 http://www.seiai.ed.jp/