Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PHP】mbstringモジュールで「髙橋」や「山﨑」の文字の日本語処理に失敗する

PHPで日本語処理を行う際に、髙橋さんの「髙」(はしごたか)や山﨑さんの「﨑」(たちさき)の漢字を処理しようとすると失敗することがある。失敗した場合、その文字は「?」と表示される。

PHPで日本語などのマルチバイト文字を処理するにはmbstringモジュールを使用することが多いが、この場合、文字エンコーディングをきちんと指定する必要がある。Windows 7(例えばマイクロソフトエクセルなど)で出力されたテキストファイルは、文字エンコーディングは通常Shift-JIS(シフトJIS)になるが、PHPで扱う場合は文字エンコーディングに「SJIS-win」を使用すること。

以下は、Windows 7上で作成されたテキストファイルのテキストを代入した変数($××)の中身をUTF-8に変換して他の変数($○○)に代入する例。

$○○ = mb_convert_encoding($××, "UTF-8", "SJIS-win");