*概要 [#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);};