基于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中实现Javascript的escape()函数代码
Aug 08 PHP
php无限分类且支持输出树状图的详细介绍
Jun 19 PHP
在wamp集成环境下升级php版本(实现方法)
Jul 01 PHP
php Session存储到Redis的方法
Nov 04 PHP
WordPress中限制非管理员用户在文章后只能评论一次
Dec 31 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
php微信公众平台交互与接口详解
Nov 28 PHP
php 猴子摘桃的算法
Jun 20 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
PHP实现的日历功能示例
Sep 01 PHP
Laravel5.4框架使用socialite实现github登录的方法
Mar 20 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 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的ob_start() 控制您的浏览器cache
2009/08/03 PHP
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
tp5.1 框架数据库-数据集操作实例分析
2020/05/26 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
整理一些JavaScript的IE和火狐的兼容性注意事项
2011/03/17 Javascript
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
原生js实现数字字母混合验证码的简单实例
2015/12/10 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
python django集成cas验证系统
2014/07/14 Python
python爬虫之百度API调用方法
2017/06/11 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
Python内置函数及功能简介汇总
2020/10/13 Python
大学生职业生涯规划书
2014/03/14 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
家长通知书家长意见
2015/06/03 职场文书
教师节座谈会主持词
2015/07/03 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
如何写好活动总结
2019/06/21 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis