基于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执行linux系统命令的常用函数使用说明
Apr 27 PHP
注册页面之前先验证用户名是否存在的php代码
Jul 14 PHP
深入file_get_contents函数抓取内容失败的原因分析
Jun 25 PHP
ThinkPHP分页类使用详解
Mar 05 PHP
PHP+memcache实现消息队列案例分享
May 21 PHP
PDO预处理语句PDOStatement对象使用总结
Nov 20 PHP
在WordPress中实现发送http请求的相关函数解析
Dec 29 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
浅谈PHP中的面向对象OOP中的魔术方法
Jun 12 PHP
PHP设计模式之原型模式定义与用法详解
Apr 03 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 PHP
关于laravel5.5的定时任务详解(demo)
Oct 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
PHP添加MySQL数据记录代码
2008/06/07 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
利用javascript实现的三种图片放大镜效果实例(附源码)
2017/01/23 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
[03:48]2014DOTA2 TI专访71DK夺冠不靠小组赛高排名
2014/07/11 DOTA
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
2018/04/25 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
详解python中的index函数用法
2019/08/06 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
Python爬虫爬取Bilibili弹幕过程解析
2019/10/10 Python
python模块hashlib(加密服务)知识点讲解
2019/11/25 Python
Python django框架开发发布会签到系统(web开发)
2020/02/12 Python
浅析NumPy 切片和索引
2020/09/02 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
C#公司笔试题
2014/03/28 面试题
编程实现去掉XML的重复结点
2014/05/28 面试题
医学院学生的自我评价分享
2013/11/19 职场文书
公司培训心得体会
2014/01/03 职场文书
农林环境专业求职信
2014/03/13 职场文书
后勤个人工作总结
2015/02/28 职场文书
导游词之广西漓江
2019/11/02 职场文书