基于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 魔术函数使用说明
Feb 21 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
Oct 31 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
php使用cookie保存用户登录的用户名实例
Jan 26 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
PHP的APC模块实现上传进度条
Oct 27 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
php利用gd库为图片添加水印
Nov 09 PHP
php实现多维数组排序的方法示例
Mar 23 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
用IE远程创建Mysql数据库的简易程序
2006/10/09 PHP
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
php简单封装了一些常用JS操作
2007/02/25 PHP
常见的PHP五种设计模式小结
2011/03/23 PHP
判断PHP数组是否为空的代码
2011/09/08 PHP
PHP基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
动态控制Table的js代码
2007/03/07 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
react项目实践之webpack-dev-serve
2018/09/14 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
Python类属性与实例属性用法分析
2015/05/09 Python
python获取目录下所有文件的方法
2015/06/01 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
python验证码识别实例代码
2018/02/03 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
pandas 将索引值相加的方法
2018/11/15 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
python操作文件的参数整理
2019/06/11 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
2014年财务科工作总结
2014/11/11 职场文书
学校隐患排查制度
2015/08/05 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
Java8中Stream的一些神操作
2021/11/02 Java/Android
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技