スポンサーリンク


概要

  • PHPで文字化けした時の確認事項

確認

  • まずはphpinfo()で「mbstring」を確認してみる。特に以下の項目。
    • mbstring.http_output
    • mbstring.internal_encoding
    • mbstring.language
      <?php phpinfo() ?>
      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を使用して文字コードを変換する。
    <?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

リンク


Total:13219 / Today:1 / Yesterday:1


スポンサーリンク


添付ファイル: filembstring.png 2113件 [詳細]

トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-04-09 (火) 14:27:49