文字コードの変換 
2008/11/28 金曜日 11:42:02
チョコボールです。
PHP言語での文字コードの変換といえば『mb_convert_encoding』関数。
mb_convert_encoding(【文字列】,【変換後の文字コード】,【変換前の文字コード】);
返り値は変換後の文字列です。
以前書いた記事、CSVファイル出力関数の時にも使いましたが、出力する直前に、
$str = mb_convert_encoding($str, 'SJIS', 'UTF-8');
のように使って文字列の文字コードを変換したりするわけです。
上記の場合、UTF-8からShift JISに変換です。
第3引数→第2引数
第3引数を指定しなかった場合は、内部文字エンコーディング
(php.ini の mbstring.internal_encoding の値)を使用することになります。
配列中の文字列の文字コードを一気に変換したい時、
foreach等でループさせてmb_convert_encodingかけて…
とかしなくてもmb_convert_variables関数で一行でいけます。
mb_convert_variables(【変換後の文字コード】,【変換前の文字コード】, 【文字列、配列、オブジェクト】);
変数はカンマで区切って複数指定できます。
第2引数→第1引数
mb_convert_encodingと違い、返り値は変換前の文字エンコーディングを返します。
失敗した場合はFALSEを返します。
$ret = mb_convert_variables('SJIS', 'UTF-8', $array);
上記の場合、返り値$retはSJISになります。
単に変換を掛けたいだけの場合は
mb_convert_variables('SJIS', 'UTF-8', $array);
の一行で。
一見似ている関数ですが、引数の順番の違い、返り値の違いに注意が必要です。