分かりやすく、使いやすく。

文字列のエンコーディング(文字コード)を変換する

スポンサーリンク

変換対象が変数か配列かで使用する関数が異なります。

  1. 文字列変数のエンコーディング(文字コード)を変換する
  2. 文字列配列のエンコーディング(文字コード)を変換する


文字列変数のエンコーディング(文字コード)を変換する

文字列変数を変換する場合は、mb_convert_encoding 関数を使用します。

php(書式)
1
$str = mb_convert_encoding(変換対象の文字列, 変換後の文字コード, 変換前の文字コード); 

実際の使用例は以下の通りです。

php(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
//変換対象のシフトJISの文字列変数
$str_sjis = "SJISをUTF-8に変換";
 
//Windows用シフトJIS(Windows-31J)の文字列をUTF-8に変換
$str_utf8 = mb_convert_encoding($str_sjis, "UTF-8", "SJIS-win");
 
//UTF-8の文字列に変換されている
print_r($str_utf8); 

指定可能なエンコーディングについては、公式サイトに一覧が載っています。

参考:mbstringがサポートする文字エンコーディング一覧

文字列配列のエンコーディング(文字コード)を変換する

文字列変数を変換する場合は、mb_convert_variables 関数を使用します。 この関数は変換した文字列を返すのではなく、配列の中身を直接変換するので注意が必要です。また mb_convert_encoding と引数の渡し方が異なります。

php(書式)
1
mb_convert_variables(変換後の文字コード, 変換前の文字コード, 変換対象の文字列配列); 

実際の使用例は以下の通りです。

php(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
//変換対象のシフトJISの文字列配列
$ary_str = array(
                "変換対象の文字列・その1",
                "変換対象の文字列・その2",
                "変換対象の文字列・その3",
            );
 
//Windows用シフトJIS(Windows-31J)の文字列をUTF-8に変換
mb_convert_variables("UTF-8", "SJIS-win", $ary_str);
 
//UTF-8の文字列に変換されている
print_r($ary_str); 
スポンサーリンク