「PHP」file_get_contentsでの文字化け回避方法

PHP文字列

file_get_contentsでの文字化け回避にはmb_convert_encoding()を利用します

多いのはphpファイルはUTF-8になっているのに読み込んだ文字列がSJIS等の場合に発生します

$data = file_get_contents($file);
$data = mb_convert_encoding($data,"utf-8","sjis");
$data = file_get_contents($file);
$data = mb_convert_encoding($data,"utf-8","auto");

file_get_contentsに限らずPHPにおける文字化け対策として使われています

$data = mb_convert_encoding($data,"utf-8","auto");

また利用しているファイルがSJISの場合は

$data = mb_convert_encoding($data,"sjis","auto");

参照する文字コードの複数指定

対象がS-JISとはっきりしている場合は

mb_convert_encoding($data,"utf-8","sjis");

SJISかEUC-JPか不明な場合は複数記述する事で順番に検出して参照します

mb_convert_encoding($data,"utf-8","sjis,EUC-JP");

“auto”は内部的にASCII JIS UTF-8 EUC-JP SJISの順で検出参照します

mb_convert_encoding($data,"auto");

PHP文字列

Posted by Yousuke.U