基于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 创建标签云函数代码
May 26 PHP
php中函数的形参与实参的问题说明
Sep 01 PHP
php之XML转数组函数的详解
Jun 07 PHP
php curl_init函数用法
Jan 31 PHP
WebQQ最新登陆协议的用法
Dec 22 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
ThinkPHP模型详解
Jul 27 PHP
学习php设计模式 php实现门面模式(Facade)
Dec 07 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
php封装的mongodb操作类代码
Aug 06 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
Aug 03 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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 无限级缓存的类的扩展
2009/03/16 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
PHP处理bmp格式图片的方法分析
2017/07/04 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
2016/11/24 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
微信JSAPI Ticket接口签名详解
2020/06/28 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
2019/01/09 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
详解React的回调渲染模式
2020/09/10 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
Python求两个list的差集、交集与并集的方法
2014/11/01 Python
Python时间模块datetime、time、calendar的使用方法
2016/01/13 Python
Python正则表达式知识汇总
2017/09/22 Python
python实现顺时针打印矩阵
2019/03/02 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
Html5实现iPhone开机界面示例代码
2013/06/30 HTML / CSS
台湾旅游网站:雄狮旅游网
2017/08/16 全球购物
英国探险旅游专家:Explore
2018/12/20 全球购物
Unineed中文官网:高端护肤美妆与时尚配饰,英国直邮
2020/07/23 全球购物
什么是规则表达式
2012/05/03 面试题
Ajax请求总共有多少种Callback
2016/07/17 面试题
农民入党思想汇报
2014/01/03 职场文书
八年级历史教学反思
2014/01/10 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
学习与创新自我评价
2015/03/09 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
幼儿园教师教学反思
2016/03/02 职场文书
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript
Python pandas求方差和标准差的方法实例
2021/08/04 Python