Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

WindowsからiPhone/iPod touch/Macに送ってはいけない文字とは?

―― 電子メールなどで文字化けが発生する文字に注意 ――

デジタルアドバンテージ 島田 広道
2011/01/28
2011/02/22更新
Windowsで作成したテキストをiPhone/iPod touch/Macのユーザーが表示すると、一部の文字が化けてしまうことがある。
これらのプラットフォームの間で、文字コードにおける文字と番号の割り当てが一部異なるのが原因の1つである。
こうした文字は別の文字で代替して表現するなどして、使わない方が安全だ。

解説

 Windows上のテキスト・エディタやメーラで書いたテキストを社外に送ったとき、iPhoneやiPod touch、Macを利用している人から「文字が化けている」といった苦情を受けたことはないだろうか? それも、全文が読めないのではなく、一部の文字だけが判読できないというパターンだ。次の例は、Windows Liveメールで作成・送信したメールを、iPhone標準のメーラで受信・表示したものだ。

■Windows Liveメールで作成・送信したメール
■iPhoneの標準メーラで受信・表示したメール
WindowsからiPhoneへ送ったテキストで文字化けが生じた例
Windowsからは数字のテキストを送ったにもかかわらず、iPhoneでは曜日の漢字が表示されていることが分かる。
Windows Liveメールでは、白い丸で囲った数字(丸数字)が並んでいる。
iPhoneの標準メーラでは、数字ではなく「(日)」「(月)」のように括弧でくくられた曜日の漢字に変わってしまっている。

 このように、Windowsでは数字を記したはずだったのに、iPhoneでは曜日が表示されてしまった。これだと、送信者は優先順位を指定したつもりだったのに、受信者は日程を指定されたものと勘違いしかねない。

 このように作成・送信側と受信側との間で、一部の文字だけが明らかに異なる文字として表示されてしまう現象は、メールに限ったことではなく、Webページや、プレーン・テキストのファイルの受け渡しでも発生することがある。しかも、特定の文字が必ず化けるとは限らず、文字の組み合わせや送信側/受信側のプラットフォーム、アプリケーションなどによって、化けたり化けなかったりする。

 そこで本稿ではWindowsユーザーを対象に、WindowsからiPhone/iPod touch(iOS)やMac(Mac OS X)へテキスト・データを送る際に、こうした一部の文字が化ける現象の原因を探り、その方策を考えてみる。

なぜ丸で囲った数字がカッコ付き曜日に化けるのか?

 コンピュータの内部において、文字は「文字コード」と呼ばれる数値(番号)で取り扱われている。例えば「あ」は0x82A0」、「い」は0x82A1といった具合に、各文字には固有の番号が割り当てられており(これはシフトJISコードの例)、ソフトウェアからはこの番号を指定することで対象の文字を処理できる。この文字コードは1種類ではなく、シフトJISやJISコード、EUC、Unicodeなどなど複数の方式がある。文字コードの詳細についてはTIPS「メールの文字コードを理解する」が参考になる。

 WindowsもiOS/Mac OS Xも、シフトJISやJISコード、Unicodeといった文字コードを取り扱うことができる。しかし、シフトJISやJISコードにおける文字とコード番号の割り当ては、両プラットフォーム間でまったく共通というわけではなく、一部に食い違いがある。前述の丸で囲った数字とカッコでくくられた曜日は、その代表例で、次の表のように同じ番号に対してまったく異なる文字が割り当てられている。

シフトJIS のコード番号 JISのコード番号 Windows iOS/Mac OS X
0x8740 0x2D21
0x8741 0x2D22
0x8742 0x2D23
0x8743 0x2D24
0x8744 0x2D25
WindowsとiOS/Mac OS Xにおける文字とコード番号の割り当てが異なる例
これは前述のメールで文字化けが生じた文字の例。

 このほかにも、一方のプラットフォームでは文字が割り当てられていないコード番号に対し、他方では特定の文字が割り当てられているということもある。このような文字をテキスト・データに含めてしまうと、受け取った側では文字のエンコードに失敗してエラーが発生し、テキスト・データ全体が表示できなくなることもある。

どのような文字が化けるのか?

 WindowsとiOS/Mac OS Xの間でコード番号の割り当てが異なる文字は、文字コード全体からすればわずかである。シフトJIS/JISコードにおいて、Windowsで利用できる文字のうち、iOS/Mac OS Xで文字化けする可能性のある文字を以下にピックアップしてみた。

コード番号の異なる文字の表示例(左:Windows、右:Mac OS X)
これはシフトJIS/JISコードでコード番号の割り当ての異なる文字をピックアップし、Windows 7(左)とMac OS X 10.5(右)で表示した例。Windows側で未定義の文字は省いている。またMac OS Xで「・」となっているのは、未定義のため表示できなかった文字である。これはあくまでも一例であり、プラットフォームやアプリケーションなどによって文字が化けなかったり、別の文字で表示されたりすることもある。
学術記号の「Σ」は数式で総和を表す記号で、ギリシャ文字の「シグマ」とは違う文字。

 こうしてみると、丸で囲われた文字や、「ミリ」「キロ」のように複数の文字を1文字で表現している文字が、Mac OS Xでは正しく表示されないことが分かる。ただし、誤解のないように記しておくと、Mac OS XやiOSでもこうした文字は定義されており、表示もできる。ただ、そのコード番号がWindowsとは異なるため、上記の例では表示されないということだ。

 このほかにも、Windowsで表示可能な漢字の一部が、iOS/Mac OS Xで表示できない場合がある(シフトJISの0xED41〜0xED6F、0xFA8D〜0xFAFCなどに割り当てられた漢字)。ただし、いずれも普段目にすることが少ない特殊な漢字ばかりのようだ。

文字化けを防ぐ方法

 前述のような文字化けを防ぐ方法のうち、最も手軽なのは、化けてしまう可能性のある文字は使わず、別の文字で代替することだ。丸で囲われた文字は、例えば「(1)」「(2)」のように複数の文字を組み合わせて表現する。ローマ数字はアルファベットの「I」「V」「X」を組み合わせれば代替できる。「ミリ」「キロ」などの単位記号は全角カタカナで表せるし、元号や省略形も同様に複数の文字を組み合わせれば表現できる。くくりの記号は別の記号で代替できるだろう。

 テキストを扱うアプリケーションには、文字化けが生じる可能性のある文字を入力すると、自動的に色を変えるなどしてユーザーに知らせてくれるものもある。こうした機能を利用すれば、文字化けする文字の入力を防ぐことも可能だ。

文字化けする可能性のある文字を通知するアプリケーションの例
これはBecky! Internet Mailというメーラで、メールを送信しようとしているところ。
文字化けする可能性のある、丸で囲われた数字がピンク色で表示されている。これは、現在の文字コード(iso-2022-jp)では文字化けが生じる可能性があることを表している。

 代替できない文字を使いたい場合や、どの文字が化けてしまうか分からない場合は、Unicodeでテキスト・データを作成し、添付ファイルとして送信するという手もある。Unicodeにおいても食い違いは皆無ではないが、実用上はWindowsとiOS/Mac OS X間で文字化けなしでテキスト・データを交換できる。欠点はUnicodeに対応していないアプリケーションがまだ多いことで、例えばUnicode非対応のメーラでUnicodeテキストの本文を受信すると、一部どころかメール本文すべてが化けてしまってまったく読めなくなってしまう。受信者がUnicodeテキストを確実に取り扱えると確認できない場合は、むやみにUnicodeでテキストをエンコードして送らない方が無難だ。End of Article

更新履歴
【2011/02/22】公開当初、「Macintosh」と表記していていましたが、現在の呼称にあわせて「Mac」に変更しました。

「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間