(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 类型 str
的字符编码从可选的 from_encoding
转换到 to_encoding
。
当参数 string
是一个 array 时,将递归转换它所有的 string 值。
string
要编码的 string 或 array。
to_encoding
string
要转换成的编码类型。
from_encoding
在转换前通过字符代码名称来指定。它可以是一个 array 也可以是逗号分隔的枚举列表。
如果没有提供 from_encoding
,则会使用内部(internal)编码。
参见支持的编码。
编码后的 string。
成功时返回编码后的 string 或 array, 或者在失败时返回 false
。
当 to_encoding
或 from_encoding
为无效的编码时,
PHP 8.0.0 起将抛出 ValueError;
而在 PHP 8.0.0 之前的版本里,会产生一个 E_WARNING
。
版本 | 说明 |
---|---|
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");
/* "auto" 扩展成 "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>