(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
変換する string または array
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.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");
/* mbstring.language が "Japanese" の場合 "auto" は、"ASCII,JIS,UTF-8,EUC-JP,SJIS" に展開される */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>