基于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 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
基于mysql的bbs设计(二)
Oct 09 PHP
php array_flip() 删除数组重复元素
Jan 14 PHP
在命令行下运行PHP脚本[带参数]的方法
Jan 22 PHP
PHP写杨辉三角实例代码
Jul 17 PHP
关于php循环跳出的问题
Jul 01 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
Aug 01 PHP
php简单实现批量上传图片的方法
May 09 PHP
PHP实现简易blog的制作
Oct 24 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 PHP
Laravel 默认邮箱登录改成用户名登录的实现方法
Aug 12 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
php获取bing每日壁纸示例分享
2014/02/25 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
javascript cookies操作集合
2010/04/12 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
js canvas实现放大镜查看图片功能
2017/06/08 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
vue表单数据交互提交演示教程
2019/11/13 Javascript
vue3.0中使用postcss-pxtorem的具体方法
2019/11/20 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
JS canvas实现画板和签字板功能
2021/02/23 Javascript
python双向链表实现实例代码
2013/11/21 Python
一张图带我们入门Python基础教程
2017/02/05 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
Linux CentOS Python开发环境搭建教程
2018/11/28 Python
在python中画正态分布图像的实例
2019/07/08 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
python elasticsearch环境搭建详解
2019/09/02 Python
Python银行系统实战源码
2019/10/25 Python
初学者学习Python好还是Java好
2020/05/26 Python
python搜索算法原理及实例讲解
2020/11/18 Python
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
实习生个人的自我评价
2013/12/08 职场文书
大学生素质拓展活动方案
2014/02/11 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
保安辞职信范文
2015/02/28 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
Python软件包安装的三种常见方法
2022/07/07 Python