基于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 什么是PEAR?(第三篇)
Mar 19 PHP
php与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
php与mysql建立连接并执行SQL语句的代码
Jul 04 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
Apr 02 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
thinkPHP5.0框架开发规范简介
Mar 25 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
PHP设计模式之模板方法模式定义与用法详解
Apr 02 PHP
php实现微信分享朋友链接功能
Feb 18 PHP
PHP CURL中传递cookie的方法步骤
May 09 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
php7 参数、整形及字符串处理机制修改实例分析
May 25 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
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
php微信支付之公众号支付功能
2018/05/30 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
2019/10/16 PHP
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
巧用局部变量提升javascript性能
2014/02/24 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
如何手写简易的 Vue Router
2020/10/10 Javascript
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
Python中的wordcloud库安装问题及解决方法
2020/05/27 Python
python如何提升爬虫效率
2020/09/27 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
JMS中Topic和Queue有什么区别
2013/05/15 面试题
会计电算化专业毕业生自荐信
2013/12/20 职场文书
无工作经验者个人求职信范文
2013/12/22 职场文书
两只小狮子教学反思
2014/02/05 职场文书
小班幼儿评语大全
2014/04/30 职场文书
五一口号
2014/06/19 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
尊师重教主题班会
2015/08/14 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL