php中iconv函数使用方法

释放双眼,带上耳机,听听看~!

需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。  让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错  

解决方法很简单,就是在需要转成的编码后加 "//IGNORE"  也就是iconv函数第二个参数后.如下

iconv("UTF-8","GB2312//IGNORE",$data) 

ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。


1
2
3
4
5
6
7
8
9
10
11
12
1<?php
2echo $str= '你好,这里是卖咖啡!';
3echo '<br />';
4echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8
5echo '<br />';
6echo iconv_substr($str, 1, 1, 'UTF-8'); //按字符个数截取而非字节
7print_r(iconv_get_encoding()); //得到当前页面编码信息
8echo iconv_strlen($str, 'UTF-8'); //得到设定编码的字符串长度
9//也有这样用的
10$content = iconv("UTF-8","gbk//TRANSLIT",$content);
11?>
12

给TA打赏
共{{data.count}}人
人已打赏
安全技术

C++ 中 struct和class 的区别

2022-1-11 12:36:11

安全经验

适用于 Mac 和 Linux 的 Firefox 获得新的安全沙盒系统

2020-2-27 11:12:22

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索