基于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代码
Aug 08 PHP
深入PHP数据加密详解
Jun 18 PHP
如何使用php判断所处服务器操作系统的类型
Jun 20 PHP
11个PHPer必须要了解的编程规范
Sep 22 PHP
php短址转换实现方法
Feb 25 PHP
php 中的closure用法详解
Jun 12 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
PHP中PDO事务处理操作示例
May 02 PHP
在Laravel的Model层做数据缓存的实现
Sep 26 PHP
Laravel获取所有的数据库表及结构的方法
Oct 10 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 PHP
php实现JWT(json web token)鉴权实例详解
Nov 05 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开发规范手册之PHP代码规范详解
2011/01/13 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
学习YUI.Ext基础第一天
2007/03/10 Javascript
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
javascript中的array数组使用技巧
2010/01/31 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
EasyUI学习之Combobox级联下拉列表(2)
2016/12/29 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
写自荐信三大法宝
2014/01/24 职场文书
社区活动总结报告
2014/05/05 职场文书
竞选学习委员演讲稿
2014/09/01 职场文书
2014年教育工作总结
2014/11/26 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
新党员入党决心书
2015/09/22 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
微软团队与 NASA 科学家和惠普企业(HPE)的工程师合作
2022/04/21 数码科技