※ パクレゼルヴではWeb開発エンジニアを大募集中!詳細はこちら
Home > PHP > 文字コードの変換

文字コードの変換  

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);

の一行で。

一見似ている関数ですが、引数の順番の違い、返り値の違いに注意が必要です。

MoriMoriMoriMori PHP

  1. No comments yet.
  1. No trackbacks yet.