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

変換したい文字エンコーディング。

from_encoding

string を解釈するのに使われている 現在の文字エンコーディング。 配列またはカンマ区切りの文字列とすることで、 複数のエンコーディングを指定できます。 この場合、正しいエンコーディングを mb_detect_encoding() と同じアルゴリズムで推測します。

from_encoding が省略されたり、 null だった場合は、 mbstring.internal_encoding setting が設定されていた場合、それを使います。 設定されていない場合は、 default_charset setting を使います。

to_encodingfrom_encoding に指定できる値は、 サポートされる文字エンコーディングを参照ください。

戻り値

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

エラー / 例外

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

変更履歴

バージョン説明
8.2.0mb_convert_encoding() は、 以下のテキストでないエンコーディングを返さなくなりました: "Base64", "QPrint", "UUencode", "HTML entities", "7 bit", "8 bit"
8.0.0to_encoding に不正なエンコーディングが渡された場合、 ValueError がスローされるようになりました。
8.0.0from_encoding に不正なエンコーディングが渡された場合、 ValueError がスローされるようになりました。
8.0.0from_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");
?>

参考

  • mb_detect_order() - 文字エンコーディング検出順序を設定あるいは取得する
  • UConverter::transcode() - ある文字エンコーディングから別の文字エンコーディングに文字列を変換する
  • iconv() - ある文字エンコーディングの文字列を、別の文字エンコーディングに変換する
To Top