文字列のエンコーディング(文字コード)を変換する
スポンサーリンク
変換対象が変数か配列かで使用する関数が異なります。
文字列変数のエンコーディング(文字コード)を変換する
文字列変数を変換する場合は、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); |
スポンサーリンク
- マルチバイト文字列処理
- 文字列のエンコーディング(文字コード)を変換する
- マルチバイト文字列の文字数をカウントする
- 文字列の右側から指定した文字数を取り出す方法
- 文字列の左側から指定した文字数を取り出す方法