*概要 [#j74416f9] -PHPで文字化けした時の確認事項 *確認 [#w7d8b049] -まずはphpinfo()で「mbstring」を確認してみる。特に以下の項目。 --mbstring.http_output --mbstring.internal_encoding --mbstring.language <?php phpinfo() ?> #ref(mbstring.png) -上記で表示される文字コードでPHPのコードを書き、HTMLの出力も同コードで行うのが無難。 -他の文字コードを使用したい場合は、コードの最初で以下のように定義しなおす。 <?php //文字コードの設定 mb_language('Japanese'); mb_internal_encoding('UTF-8'); mb_http_output('UTF-8'); ?> -HTMLの文字コードの設定も正しく行う。 |文字コード|記述| |Sift JIS|<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">| |EUC|<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">| |JIS|<meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp">| |ユニコード(UTF-8)|<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">| -処理内部で文字コードの変換が必要な場合は[[mb_convert_encoding>http://www.php.net/manual/ja/function.mb-convert-encoding.php]]を使用して文字コードを変換する。 <?php /* 内部文字エンコーディングからSJISに変換 */ $str = mb_convert_encoding($str, "SJIS"); /* EUC-JPからUTF-7に変換 */ $str = mb_convert_encoding($str, "UTF-7", "EUC-JP"); /* JIS, eucjp-win, sjis-winの順番で自動検出し、UCS-2LEに変換 */ $str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win"); /* "auto" は、"ASCII,JIS,UTF-8,EUC-JP,SJIS" に展開される */ $str = mb_convert_encoding($str, "EUC-JP", "auto"); ?> -デフォルトの文字コードは以下で変更可能。 --php.ini --.htaccess *リンク [#l1838eec] -[[PHPの文字化けについて>http://tsuttayo.jpn.org/php/char_trn/index.php]] -[[文字エンコーディング自動検出順を変更する>http://bg.pi-ppi.com/page/i01/000368.html]] -[[mb_convert_encoding - 文字エンコーディングを変換する>http://phpspot.net/php/man/php/function.mb-convert-encoding.html]] ---- &size(12){Total:&counter(total); / Today:&counter(today); / Yesterday:&counter(yesterday);};