基于php iconv函数的使用详解


Posted in PHP onJune 09, 2013

unix下安装PHP的module,需要重新编译PHP,Windows下安装模板,只需将php.ini里的配置打开相应的dll就可,例如,需要加入gb库的支持,需要如下设置:
extension_dir = "C:/ipaddr/php/extensions/"
(注意,建议写全地址,并且后面加上/,很多时候是因为这里设置不对,才导致无法加载其它模块的dll的)
再打开
extension=php_gd2.dll
但如果是安装iconv.dll,按上面方法,打开php_iconv.dll后,还是无法开启iconv模块,需要如下配置:
a.上iconv的官方下载站点
http://ftp.gnu.org/pub/gnu/libiconv/
下面Windows版的iconv文件:libiconv-1.9.1.bin.woe32.zip
将这文件解压,将bin/下面的charset.dll,iconv.dll,iconv.exe拷贝到c:/windows/ (或其它的系统PATH中)
(ipaddr提醒你,这步是必须的,php_iconv.dll也是调用GNU的iconv库的,所以,先要安装GNU的iconv库)

b.开启php.ini里面的php_iconv.dll

c.重启Apache,再在phpinfo();检测是否开启iconv。
最近在做一个程序,需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数的一个bug。iconv在转换字符"—"到gb2312时会出错
解决方法很简单,就是在需要转成的编码后加 "//IGNORE" 也就是iconv函数第二个参数后.如下:
以下为引用的内容:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

这个iconv()这个函数,在php5中是内置的.谢谢.

列子

<?php
echo $str= '你好,这里是卖咖啡!';
echo '<br />';
echo iconv('GB2312', 'UTF-8', $str);      //将字符串的编码从GB2312转到UTF-8
echo '<br />';
echo iconv_substr($str, 1, 1, 'UTF-8');   //按字符个数截取而非字节         
print_r(iconv_get_encoding());            //得到当前页面编码信息
echo iconv_strlen($str, 'UTF-8');         //得到设定编码的字符串长度
//也有这样用的
   $content = iconv("UTF-8","gbk//TRANSLIT",$content); 
?>
PHP 相关文章推荐
谈谈PHP语法(3)
Oct 09 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
Jun 03 PHP
php设计模式 Prototype (原型模式)代码
Jun 26 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
Jun 28 PHP
thinkphp的CURD和查询方式介绍
Dec 19 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
smarty模板引擎之配置文件数据和保留数据
Mar 30 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
PHP共享内存用法实例分析
Feb 12 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
Mar 12 PHP
在laravel5.2中实现点击用户头像更改头像的方法
Oct 14 PHP
PHP连续签到功能实现方法详解
Dec 04 PHP
PHP页面间参数传递的四种方法详解
Jun 09 #PHP
利用PHP+JS实现搜索自动提示(实例)
Jun 09 #PHP
深入php处理整数函数的详解
Jun 09 #PHP
解决ajax+php中文乱码的方法详解
Jun 09 #PHP
PHP写的加密函数,支持私人密钥(详细介绍)
Jun 09 #PHP
PHP版 汉字转码的实现详解
Jun 09 #PHP
php批量上传的实现代码
Jun 09 #PHP
You might like
php escape URL编码
2008/12/10 PHP
php验证码实现代码(3种)
2015/09/07 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
JavaScript URL参数读取改进版
2009/01/16 Javascript
JS 分号引起的一段调试问题
2009/06/18 Javascript
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
js复制到剪切板的实例方法
2013/06/28 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
js select实现省市区联动选择
2020/04/17 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
什么时候不能在 Node.js 中使用 Lock Files
2019/06/24 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
Python中文编码那些事
2014/06/25 Python
Python httplib模块使用实例
2015/04/11 Python
探究Python中isalnum()方法的使用
2015/05/18 Python
Python脚本实现12306火车票查询系统
2016/09/30 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
Python中GIL的使用详解
2018/10/03 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
Python面向对象之私有属性和私有方法应用案例分析
2019/12/31 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
个人委托书格式
2014/04/04 职场文书
学雷锋月活动总结
2014/04/25 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸
分享五个Node.js开发的优秀实践 
2022/04/07 NodeJs
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL
Redis+AOP+自定义注解实现限流
2022/06/28 Redis