ケータイの文字コードについて調べてみた

  • ケータイ(ガラケー)の文字コードについて調べる機会があったので、基本的なところをまとめておく。
  • ケータイ端末の内部コードは、docomoauSoftBankいずれもShift-JIS。Windows外字のうち、13区相当のNEC特殊文字については、各社ともサポートしている。その一方で、NEC選定IBM拡張文字とIBM拡張文字は、各社とも公式にはサポートしていない。ただし、機種によってはNEC選定IBM拡張文字またはIBM拡張文字を表示できることもある。


  • 各社とも、0xEB40以降(85〜120区相当)に絵文字を収録している。下図は、Shift-JISの符号空間のうち、JIS X 0208の文字が入っていない部分への外字の割り当てを示したもの。紫地がWindows外字領域、黄色地が各キャリアの絵文字領域。グレーの数字はShift-JISの上2桁、黒の数字は区。


  • 下図は、docomoの端末の一例。Windows外字のうちケータイキャリア各社が公式にサポートしているのはNEC特殊文字だけであることはすでに述べたが、このN703iμの場合、NEC製だけあって(?)89〜92区相当のNEC選定IBM拡張文字もサポートしている。また、それ以外に、9〜11区にPC98互換の半角文字、14〜15区にはISO 8859-1の文字*1、85〜86区にARIB外字が入っていたりする(ピンク地が独自の外字領域)。



  • docomoSoftBankは、自社ケータイ間のメールのやりとりに、内部コードのShift-JISをそのまま使う。auは、絵文字領域をシフトした独自のISO-2022-JPを使う(下図)。


  • 各社とも、他社ケータイ宛のメールでは、ゲートウェイで相手に応じた変換を行う。パソコン宛のメールは、docomoSoftBankは、絵文字を〓に置き換えた上でISO-2022-JPで送信する。auはパソコン宛のメールでも、自社ケータイ宛と同じ絵文字入りのISO-2022-JPをそのまま送信する。これが引き起こす文字化けについては、「au絵文字の文字化け解読リスト」で述べた。

*1:ISO 8859-1の文字が入っているということはcharset=ISO-8859-1のメールを表示できるのだろうかと思って試してみたら、ダメだった。ARIB外字も実際に使われることはなさそう。