« mb_convert_case
mb_convert_kana »

mb_convert_encoding

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

mb_convert_encoding — ある文字エンコーディングの文字列を、別の文字エンコーディングに変換する

説明

function 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_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
/* 内部文字エンコーディングから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");
?>

参考

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

関連キーワード:
encoding   エンコーディング   convert   不正   ValueError   内部   detect   mbstring   setting   サポート   eucjp   sjis   検出   auto   case   kana   マルチバイト   再帰   解釈   カンマ   区切り   複数   アルゴリズム   推測   省略
関連する関数・ページ:
function.mb-convert-variables   function.utf8-encode   function.mb-internal-encoding   function.mb-check-encoding   function.fdf-set-encoding   function.mb-strlen