基于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实现小型站点广告管理
Oct 09 PHP
php include,include_once,require,require_once
Sep 05 PHP
php初学者写及时补给skype用户充话费的小程序
Nov 02 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
解密ThinkPHP3.1.2版本之模块和操作映射
Jun 19 PHP
ThinkPHP自动填充实现无限级分类的方法
Aug 22 PHP
两款万能的php分页类
Nov 12 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 PHP
thinkphp5使用无限极分类
Feb 18 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
Apr 03 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/08/03 PHP
PHP使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
2016/03/03 PHP
Yii实现Command任务处理的方法详解
2016/07/14 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
PHP实现简单登录界面
2019/10/23 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
2016/05/26 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
Bootstrap实现各种进度条样式详解
2017/04/13 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
Angular实现类似博客评论的递归显示及获取回复评论的数据
2017/11/06 Javascript
详解如何使用webpack在vue项目中写jsx语法
2017/11/08 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
pyQT5 实现窗体之间传值的示例
2019/06/20 Python
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
100%法国制造的游戏和玩具:Les Jouets Français
2021/03/02 全球购物
外语系毕业生自荐信范文
2013/12/16 职场文书
优秀班干部事迹材料
2014/01/26 职场文书
学校安全教育制度
2014/01/31 职场文书
职工运动会邀请函
2014/02/02 职场文书
护士毕业实习感言
2014/03/05 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
css3 filter属性的使用简介
2021/03/31 HTML / CSS
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
MySQL对数据表已有表进行分区表的实现
2021/11/01 MySQL