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

转换 stringfrom_encoding 或当前内部编码转换到 to_encoding。 当参数 stringarray 时,将递归转换它所有的 string 值。

参数

string

要转换的 stringarray

to_encoding

所需的结果编码。

from_encoding

当前用于解释 string 的编码。可以将多个编码指定为 array 或逗号分隔列表,在这种情况下,将使用与 mb_detect_encoding() 相同的算法来猜测正确的编码。

如果 from_encoding 被省略或为 null,则将使用 mbstring.internal_encoding 设置,否则使用 default_charset 设置

有关 to_encodingfrom_encoding 的有效值,请参阅支持的编码

返回值

编码后的 string。 成功时返回编码后的 stringarray, 或者在失败时返回 false

错误/异常

to_encodingfrom_encoding 为无效的编码时, PHP 8.0.0 起将抛出 ValueError; 而在 PHP 8.0.0 之前的版本里,会产生一个 E_WARNING

更新日志

版本 说明
8.2.0 mb_convert_encoding() 将不再返回以下非文本编码:"Base64""QPrint""UUencode""HTML entities""7 bit""8 bit"
8.0.0 现在,当 to_encoding 为无效编码时, mb_convert_encoding() 会抛出 ValueError
8.0.0 现在,当 from_encoding 为无效编码时, mb_convert_encoding() 会抛出 ValueError
8.0.0 现在 from_encoding 可以传入 null。
7.2.0 现在该函数的 string 参数同时能接受 array 类型。 在此之前,仅支持 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 中自动检测编码,并转换 str 到 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");
?>

参见