基于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 相关文章推荐
自动跳转中英文页面
Oct 09 PHP
实例(Smarty+FCKeditor新闻系统)
Jan 02 PHP
PHP之变量、常量学习笔记
Mar 27 PHP
PHP验证码类代码( 最新修改,完全定制化! )
Dec 02 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
php以fastCGI的方式运行时文件系统权限问题及解决方法
May 11 PHP
ThinkPHP的SAE开发相关注意事项详解
Oct 09 PHP
ThinkPHP实现生成和校验验证码功能
Apr 28 PHP
解决php-fpm.service not found问题的办法
Jun 06 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
PHP编程中的Session阻塞问题与解决方法分析
Aug 07 PHP
PHP基础之输出缓冲区基本概念、原理分析
Jun 19 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内核探索:变量存储与类型使用说明
2014/01/30 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
2017/07/07 PHP
php中各种定义变量的方法小结
2017/10/18 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
JavaScript对象的property属性详解
2014/04/01 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
jQuery实现文字自动横移
2017/01/08 Javascript
angular-cli修改端口号【angular2】
2017/04/19 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
详解ES6中的三种异步解决方案
2018/06/28 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
深度了解vue.js中hooks的相关知识
2019/06/14 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
Python定时器实例代码
2017/11/01 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
python多进程重复加载的解决方式
2019/12/13 Python
Tensorflow分批量读取数据教程
2020/02/07 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
HTML5教程之html 5 本地数据库(Web Sql Database)
2014/04/03 HTML / CSS
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
Ellos瑞典官网:北欧地区时尚、美容和住宅领域领先的电子商务网站
2019/11/21 全球购物
婚庆公司的创业计划书
2014/01/22 职场文书
收银员的岗位职责范本
2014/02/04 职场文书
投标诚信承诺书
2014/05/26 职场文书
爱护草坪标语
2014/06/24 职场文书
向女朋友道歉的话
2015/01/20 职场文书
python for循环赋值问题
2021/06/03 Python
Golang 字符串的常见操作
2022/04/19 Golang