(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_convert_encoding — ある文字エンコーディングの文字列を、別の文字エンコーディングに変換する
$string
, string$to_encoding
, array|string|null$from_encoding
= null
): array|string|false 文字列 string
の文字エンコーディングを、 from_encoding
または現在の内部エンコーディングから to_encoding
に変換します。 string
が配列の場合、それに含まれる全ての文字列型の値が再帰的に変換されます。
string
to_encoding
変換したい文字エンコーディング。
from_encoding
string
を解釈するのに使われている 現在の文字エンコーディング。 配列またはカンマ区切りの文字列とすることで、 複数のエンコーディングを指定できます。 この場合、正しいエンコーディングを mb_detect_encoding() と同じアルゴリズムで推測します。
from_encoding
が省略されたり、 null
だった場合は、 mbstring.internal_encoding setting が設定されていた場合、それを使います。 設定されていない場合は、 default_charset setting を使います。
to_encoding
や from_encoding
に指定できる値は、 サポートされる文字エンコーディングを参照ください。
成功時に、変換後の文字列または配列を返します。 失敗した場合に false
を返します
PHP 8.0.0 以降では、 to_encoding
または from_encoding
に不正なエンコーディングが渡された場合、 ValueError がスローされるようになりました。 これより前のバージョンでは、 E_WARNING
が発生していました。
バージョン | 説明 |
---|---|
8.2.0 | mb_convert_encoding() は、 以下のテキストでないエンコーディングを返さなくなりました: "Base64" , "QPrint" , "UUencode" , "HTML entities" , "7 bit" , "8 bit" |
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
$str = mb_convert_encoding($str, "SJIS");
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>