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

トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS