基于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 相关文章推荐
IIS环境下快速安装、配置和调试PHP5.2.0
Dec 17 PHP
php,ajax实现分页
Mar 27 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
Aug 01 PHP
session在PHP大型web应用中的使用
Jun 25 PHP
php中删除字符串中最先出现某个字符的实现代码
Feb 03 PHP
php检测apache mod_rewrite模块是否安装的方法
Mar 14 PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 PHP
PHP对象实例化单例方法
Jan 19 PHP
php简单随机字符串生成方法示例
Apr 19 PHP
PHP实现对xml的增删改查操作案例分析
May 19 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 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
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
Symfony2创建页面实例详解
2016/03/18 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
js getElementsByTagName的简写方式
2010/06/27 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
Vue header组件开发详解
2018/01/26 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
JavaScript事件委托原理与用法实例分析
2018/06/07 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
2020/02/06 Javascript
[01:57]DOTA2上海特锦赛小组赛解说单车采访花絮
2016/02/27 DOTA
Pyhton中防止SQL注入的方法
2015/02/05 Python
使用Python的urllib和urllib2模块制作爬虫的实例教程
2016/01/20 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
解决Keras 中加入lambda层无法正常载入模型问题
2020/06/16 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
2020/07/13 Python
如何基于python把文字图片写入word文档
2020/07/31 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
大学生入党自我鉴定
2013/10/31 职场文书
机电一体化专业求职信
2014/07/22 职场文书
2014年保安个人工作总结
2014/11/13 职场文书
交通事故和解协议书
2015/01/27 职场文书
2015年工会工作总结范文
2015/07/23 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书