php语言中检测及转换文件字符编码函数介绍
微软的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);
相关文章