基于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 相关文章推荐
使用Linux五年积累的一些经验技巧
Jun 20 PHP
php初始化对象和析构函数的简单实例
Mar 11 PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 PHP
[原创]php逐行读取txt文件写入数组的方法
Jul 02 PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 PHP
CI框架数据库查询之join用法分析
May 18 PHP
PHP验证码类ValidateCode解析
Jan 07 PHP
php封装的验证码类分享
Feb 26 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
PHP微商城开源代码实例
Mar 27 PHP
laravel 验证错误信息到 blade模板的方法
Sep 29 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实现用户在线时间统计详解
2011/10/08 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
php使用post数组的键值创建同名变量并赋值的方法
2015/04/03 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
利用PHP判断文件是否为图片的方法总结
2017/01/06 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
前端性能优化建议
2020/09/17 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
Python实现发送email的几种常用方法
2014/08/18 Python
python数据结构之列表和元组的详解
2017/09/23 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
python SOCKET编程基础入门
2021/02/27 Python
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
优秀党员事迹材料
2014/12/18 职场文书
个人德育工作总结
2015/03/05 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
2015元旦感言
2015/12/09 职场文书
小学生节约用水倡议书
2019/08/12 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS
阿里面试Nacos配置中心交互模型是push还是pull原理解析
2022/07/23 Java/Android