mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_encoding文字エンコーディングを変換する

説明

mb_convert_encoding(array|string $string, string $to_encoding, array|string|null $from_encoding = null): array|string|false

文字列 string の文字エンコーディングを、 オプションで指定した from_encoding から to_encoding に変換します。 string が配列の場合、それに含まれる全ての文字列型の値が再帰的に変換されます。

パラメータ

string

変換する string または array

to_encoding

string の変換後の文字エンコーディング。

from_encoding

変換前の文字エンコーディング名を指定します。 これは、配列またはカンマ区切りの文字列とすることが可能です。 from_encoding を指定しなかった場合は、内部文字エンコーディングを使用します。

サポートされる文字エンコーディングを参照ください。

戻り値

成功時に、変換後の文字列または配列を返します。 失敗した場合に false を返します

エラー / 例外

PHP 8.0.0 以降では、 to_encoding または from_encoding に不正なエンコーディングが渡された場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、 E_WARNING が発生していました。

変更履歴

バージョン 説明
8.0.0 to_encoding に不正なエンコーディングが渡された場合、 ValueError がスローされるようになりました。
8.0.0 from_encoding に不正なエンコーディングが渡された場合、 ValueError がスローされるようになりました。
8.0.0 from_encoding は、nullable になりました。
7.2.0 この関数は、 string に 配列を受け入れるようになりました。 これより前のバージョンでは、文字列のみがサポートされていました。

例1 mb_convert_encoding() の例

<?php
/* 内部文字エンコーディングからSJISに変換 */
$str mb_convert_encoding($str"SJIS");

/* EUC-JPからUTF-7に変換 */
$str mb_convert_encoding($str"UTF-7""EUC-JP");

/* JIS, eucjp-win, sjis-winの順番で自動検出し、UCS-2LEに変換 */
$str mb_convert_encoding($str"UCS-2LE""JIS, eucjp-win, sjis-win");

/* "auto" は、"ASCII,JIS,UTF-8,EUC-JP,SJIS" に展開される */
$str mb_convert_encoding($str"EUC-JP""auto");
?>

参考

  • mb_detect_order() - 文字エンコーディング検出順序を設定あるいは取得する