45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 设计学院 > 网络编程 > PHP教程 >

php中iconv函数使用方法

电脑软硬件应用网 45IT.COM 时间:2012-07-12 16:15 作者:佚名

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中是内置的.谢谢.

例子:

01.<?php 
02.    echo $str= '你好,这里是卖咖啡!'; 
03.    echo '<br />'; 
04. 
05.    echo iconv('GB2312', 'UTF-8', $str);      //将字符串的编码从GB2312转到UTF-8 
06.    echo '<br />'; 
07. 
08.    echo iconv_substr($str, 1, 1, 'UTF-8');   //按字符个数截取而非字节          
09.    print_r(iconv_get_encoding());            //得到当前页面编码信息 
10. 
11.    echo iconv_strlen($str, 'UTF-8');         //得到设定编码的字符串长度 
12. 
13. 
14.    //也有这样用的 
15. 
16.    $content = iconv("UTF-8","gbk//TRANSLIT",$content);  
17.?> 
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识