热搜词
发表于 2021-10-10 13:06:39 | 显示全部楼层 |阅读模式
在php中iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库;但有时候iconv对于部分数据转码会无缘无故的少一些。比如在转换字符"—"到gb2312时会出错。

下面一起慢慢看一下这个函数的用法。

最简单的应用,把gb2312置换成utf-8:

$text=iconv("GB2312","UTF-8",$text);
在用$text=iconv("GB2312","UTF-8",$text)过程中,如果遇到一些特别字符时,如:"—",英文名中的"."等等字符,转换就断掉了。这些字符后的文字都没法继续转换了。

针对这的问题,可以用如下代码实现:

$text=iconv("GBK","UTF-8",$text);
你没有看错,就这么简单,不使用gb2312,而写成GBK,就可以了。

还有一种方法,第二个参数,加上//IGNORE,忽略错误,如下:

iconv("GB2312//IGNORE","UTF-8",$data);
没有具体比较这两种方法,感觉第一种(GBK代替gb2312)方法更好。



全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-11-24 20:04 , Processed in 0.162323 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team