トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

携帯/文字コード

Last-modified: 2016-03-28 (月) 17:39:46 (600d)
Top / 携帯 / 文字コード

携帯

文字集合(coded character set)

文字集合内容
1バイト系文字集合ASCII, ISO-8859-1, JIS X 0201(JISローマ字、カタカナ)
2バイト系文字集合JIS X 0208(第1、第2水準漢字など), JIS X 0212(補助漢字など), JIS X 0213(JIS X 0208に第3、第4水準漢字を追加), Unicode

文字符号化方式(character encoding schema)

文字符号化方式内容
ISO-2022-JPいわゆるJISコード
Shift_JISMicrosoftによって制定され、多くのコンピュータで利用されている方式
EUC-JP日本語UNIXシステム諮問委員会の提案に基づいてAT&Tによって制定された方式、多くのUNIXコンピュータで利用されている方式
UTF-8Unicode文字集合を利用した符号化方式。Microsoft, Apple, IBM, Sun Microsystemsなどの企業が中心となって制定し、ISOで標準化。Mac OS XやLinuxなどで利用されている方式

絵文字をPHP内部で取り扱うための文字コード

絵文字はShift_JISやEUCでは範囲外の文字となっており、Microsoftコードページ932(CP932)と呼ばれる拡張を適用することによって扱えるようになります。

ベースとなる文字コードCP932で拡張した文字コード
Shift_JISSJIS-win
EUCeucJP-win
UnicodeUnicodeでは絵文字をそのまま扱えます

注:MySQLでCP932に対応しているバージョンは、4.2.12〜または5.0.3〜です

SoftBank 3GC型ではUTF-8でページを出力するのがベター

これまでは3キャリアともページをShift_JISで出力することが多かったですが、SoftBank 3GC型端末では次の理由からUnicodeで出力するのが望ましいです。スマートフォンではUTF-8で出力しますので、出力コードを分けるのがトレンドとなりそうです。

  • SoftBank 3GC型の一部端末では、Shift_JISでページを作成するとテキスト入力で絵文字が削られます
  • SoftBank端末ではメールリンクをUTF-8でurlencodeする必要あります
  • 某携帯SNSサイトではSoftBank端末のページはUTF-8で記述することが必須です 注:SoftBank 3GC型, P型の一部, W型がUTF-8に対応しています。C型および多くのP型は非対応です

    出力文字コードはmetaタグで指定します。SJIS-winで出力するときMicrosoft CP932の指定はありませんので'Shift_JIS'と指定します。
    出力文字コードXHTMLページに記述するmetaタグ
    SJIS-win<meta http-equiv="Content-Type" content="text/html;charset='Shift_JIS'" />
    UTF-8<meta http-equiv="Content-Type" content="text/html;charset='UTF-8'" />

文字コード変換サンプルソース

携帯端末からSJIS-winのPOSTまたはGETで渡された値を、PHP内部文字コードに変換

<?php
function input_encode()
{
	if (isset($_GET) {
		mb_convert_variables(mb_internal_encoding(), 'SJIS-win', $_GET);
	}
	if (isset($_POST) {
		mb_convert_variables(mb_internal_encoding(), 'SJIS-win', $_POST);
	}
}
?>

注:SoftBank 3GC型でUnicodeのページを作成したときは、携帯端末からUnicodeで値が戻ってきます。その場合はSoftBank 3GCだけ変換元をUnicodeとするようカスタマイズしてください

PHP内部文字コードを出力時に一律SJIS-winと変換する場合のソース

ini_set('mbstring.http_output', 'SJIS-win');

リンク