sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

iOSから送信される日本語テキストメールのcharsetを調査しました

本業の一つでメールを送受信するシステムのお守りをしている関係で、RFC822の系統や日本語の文字コードやら、Javaにおける文字の取り扱いに関してはそこそこ詳しかったりするのですが、最近そのあたりの研究を怠っているせいですっかり時代に取り残されてる感が強いため、再び調査しなおすことにしました。

というわけで、まずはiOSのメーラーから送信されるメールを調査。

サブジェクトの方は無視してbodyの方に注目します。 (ヘッダフィールドの方も同じルールっぽいし、この辺りの情報を必要とする人がRFCを読んでないなんてありえないので、メールの構造とかはざっくり省略します) charsetの後ろの括弧は、Content-Transfer-Encoding

いわゆるJISコード

JIS X 201(半角カナは除外), JIS X 208の文字集合

  • iso-2022-jp (7bit)

JISコード+MS932の範囲内の文字

〜や丸囲み数字等、cp932/ms932(windows)で利用されるが、機種依存文字としてインターネットでの使用を控えるように言われている(た)文字。Softbankとauで若干扱いが異なる。

Softbank

2012/6 初旬に確認した時は

で投げられていたが、今(2013/3))確認したら

  • iso-2022-jp(7bit)

に変わっていた。 RFC的にはそれをiso-2022-jpとしちゃいかんだろうとか思うのだけれど、実際にはちゃんと表示可能なメーラーがほとんどだろうから、いちいち目くじらたてても仕方がないのかもしれない。

au

JISコード+絵文字

Softbank

絵文字はSoftBankSJISコード体系。PUBに定義されている方のコードなのかも?

au

絵文字はUnicode体系。

Unicode

Unicodeでしか表現のできない文字を使った場合

絵文字はUnicode体系。


とまぁこんな感じになりました。 Unicodeの絵文字が各キャリアの絵文字にどんな風にマッピングされるのかとか、まだまだ調査が必要ですが、いろいろ面白くなってきてますね。 Unicode6.0での絵文字対応のこともありますし、こっちが片付いたらAndroidの方でも調査しておかないといけませんね。