[System Environment] | |||||||||||
WindowsからiPhone/iPod touch/Macに送ってはいけない文字とは?―― 電子メールなどで文字化けが発生する文字に注意 ―― デジタルアドバンテージ 島田 広道2011/01/28 2011/02/22更新 |
|||||||||||
|
解説 |
Windows上のテキスト・エディタやメーラで書いたテキストを社外に送ったとき、iPhoneやiPod touch、Macを利用している人から「文字が化けている」といった苦情を受けたことはないだろうか? それも、全文が読めないのではなく、一部の文字だけが判読できないというパターンだ。次の例は、Windows Liveメールで作成・送信したメールを、iPhone標準のメーラで受信・表示したものだ。
■Windows Liveメールで作成・送信したメール | ||||||
■iPhoneの標準メーラで受信・表示したメール | ||||||
WindowsからiPhoneへ送ったテキストで文字化けが生じた例 | ||||||
Windowsからは数字のテキストを送ったにもかかわらず、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というメーラで、メールを送信しようとしているところ。 | |||
|
代替できない文字を使いたい場合や、どの文字が化けてしまうか分からない場合は、Unicodeでテキスト・データを作成し、添付ファイルとして送信するという手もある。Unicodeにおいても食い違いは皆無ではないが、実用上はWindowsとiOS/Mac OS X間で文字化けなしでテキスト・データを交換できる。欠点はUnicodeに対応していないアプリケーションがまだ多いことで、例えばUnicode非対応のメーラでUnicodeテキストの本文を受信すると、一部どころかメール本文すべてが化けてしまってまったく読めなくなってしまう。受信者がUnicodeテキストを確実に取り扱えると確認できない場合は、むやみにUnicodeでテキストをエンコードして送らない方が無難だ。
この記事と関連性の高い別の記事
- WindowsでInternet Explorerを使って文字コードを変換する(TIPS)
- WindowsでUnicode文字を簡単に入力したり、Unicodeの文字コード番号を調べたりする方法(TIPS)
- メールの文字コードを理解する(TIPS)
- nkfツールで文字コードを変換する(Windows編)(TIPS)
- テキスト・ファイルの行末コードを変更する(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
更新履歴 | |
|
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|