php使用iconv函数转换字符编码

发布时间:2020/12/08 作者:天马行空 阅读(1087)

在开发过程中经常会遇到编码转换的问题,如果目标编码和字符的原编码不一致是一定要转换的,不然就会出现各种乱码。比如你写了一个小偷程序,去抓取各大网站上的内容,采集回来的内容有些编码是gbk,有些编码是utf8。如果你的数据库及程序使用的utf8,那么对采集回来的gbk内容就需要做编码转换了。

字符编码转换主要有两种方式:
1、使用iconv函数

$content = iconv("GBK", "UTF-8", $content);

第一个参数是输入编码,第二个参数是输出编码,需要注意第二个参数可以添加两个后缀://TRANSLIT 和 //IGNORE。
//TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符;
//IGNORE 会忽略掉不能转化的字符,如果不加这个后缀,当遇到无法转换的字符后,默认会将后面的数据直接截断扔掉。


2、使用mb_convert_encoding函数

$content = mb_convert_encoding($content, "UTF-8", "GBK");

可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数。另外,如果要使用mb_convert_encoding函数,需要先在php.ini中开启对应的扩展库。

关键字php 技巧