[TROUBLE 63] PHPのコンテンツで文字化けが発生してしまう | デザインってオモシロイ -MdN Design Interactive-

[TROUBLE 63] PHPのコンテンツで文字化けが発生してしまう

2018.11.21 WED

日々のデザイン現場で発生する問題・難題を解決します!

WEB制作トラブル速戦即決術! 第12回


[TROUBLE 63]
PHPトラブル
PHPのコンテンツで
文字化けが発生してしまう

文=米田 聡

A. mbstringの設定を確認し、文字コードを変換する

PHPの設定ファイルphp.iniの内容によって、予期せぬ文字化けに遭遇することがある。中でも鬼門はマルチバイト文字コードに関連するmbstringの設定だ。php.iniの中で特に文字コードに影響を与える設定を抜き出してみた。誤解を招きやすいのはmbstring.http_outputの設定だろう。この設定は出力ハンドラをmbstringに設定しているときに機能し、通常は出力ハンドラは設定しないので設定は意味をもたない。mbstring.http_outputを設定しているから、その文字コードで出力されるだろうと考えるのは文字化けの元になる。想定した文字コードが使われない場合、図の例のようにini_set関数でmbstringの設定を変える、あるいはmb_convert_encoding関数を使ってこまめに文字コードを変換して出力するといった方法で文字化けを回避しよう。

php.ini内で文字コードに大きく影響を与える設定。php.iniの中でも文字コードに大きな影響を与える設定。php.ini自体はサーバ管理者でなければ手が出せないので管理者以外は下の図を参照
php.ini内で文字コードに大きく影響を与える設定。php.iniの中でも文字コードに大きな影響を与える設定。php.ini自体はサーバ管理者でなければ手が出せないので管理者以外は下の図を参照

ini_set関数を使って文字コード関連の設定を変える。設定を変えるini_set関数を使ってmbstring関連設定をPHPスクリプトの先頭で変更する。このようにすることで文字化けを回避できる場合がある
ini_set関数を使って文字コード関連の設定を変える。設定を変えるini_set関数を使ってmbstring関連設定をPHPスクリプトの先頭で変更する。このようにすることで文字化けを回避できる場合がある

mbstring.internal_encodingの設定の影響で文字化けが起きてしまった例
mbstring.internal_encodingの設定の影響で文字化けが起きてしまった例

[INDEX]
>>> [TROUBLE 61] JavaScriptで切り替える画像が一瞬表示されない状態になる
>>> [TROUBLE 62] Firefoxでスクロールバーが出るときと出ないときがある
>>> [TROUBLE 63] PHPのコンテンツで文字化けが発生してしまう
>>> [TROUBLE 64] IE 6やIE 7で自作のJavaScriptの実行速度が遅く感じる
>>> [TROUBLE 65] メールで送れない大きなデータを今すぐ渡さないといけなくなった
>>> [TROUBLE 66] IE 6でレイアウトが崩れ標準モードにならない



『web creators』の情報はこちら!>>>

twitter facebook このエントリーをはてなブックマークに追加 RSS

こんな記事も読まれています

この連載のすべての記事

MdN 最新刊

MdN BOOKS|デザインの本

週間アクセスランキング

11.12-11.18