PHPで日本語処理を行う際に、髙橋さんの「髙」(はしごたか)や山﨑さんの「﨑」(たちさき)の漢字を処理しようとすると失敗することがある。失敗した場合、その文字は「?」と表示される。
PHPで日本語などのマルチバイト文字を処理するにはmbstringモジュールを使用することが多いが、この場合、文字エンコーディングをきちんと指定する必要がある。Windows 7(例えばマイクロソフトエクセルなど)で出力されたテキストファイルは、文字エンコーディングは通常Shift-JIS(シフトJIS)になるが、PHPで扱う場合は文字エンコーディングに「SJIS-win」を使用すること。
以下は、Windows 7上で作成されたテキストファイルのテキストを代入した変数($××)の中身をUTF-8に変換して他の変数($○○)に代入する例。
$○○ = mb_convert_encoding($××, "UTF-8", "SJIS-win");