php语言中检测及转换文件字符编码函数介绍

2023-06-01 00:00:00 函数 编码 字符

微软的CP936通常被视为等同GBK,连IANA也以“CP936”为“GBK”之别名[1]。

事实上比较起来,GBK 定义之字符较 CP936 多出 95 字(15 个非汉字及 80 个汉字)


检测字符的编码函数

mb_detect_encoding ,它可以检测你使用的字符串是什么编码,然后返回字符串编码字符

代码示例:

mb_detect_encoding(string $str, mixed $encoding_list = mb_detect_order(), bool $strict = false): string | false

可以用array或者 逗号分隔的字符串来指定 encoding_list ,否则使用默认的mb_detect_order()


转换字符的编码函数

mb_convert_encoding ,它是php内部多字节字符串编码转换函数,可以在有需要的场合进行编码转换,如:

解决 在GB2312编码环境下使用Ajax产生的中文 字符乱码 问题


代码示例:

mb_convert_encoding(array|string $string, string $to_encoding, array|string|null $from_encoding = null): array|string|false


两者搭配效果更佳:

代码示例:

$encode = mb_detect_encoding($file_content, ["UTF-8", "GB2312", "ASCII", "GBK", "BIG5"]);
$file_content = mb_convert_encoding($file_content, 'UTF-8', $encode);

相关文章