微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于php iconv函数的使用详解

unix下安装PHP的module,需要重新编译PHP,Windows下安装模板,只需将PHP.ini里的配置打开相应的dll就可,例如,需要加入gb库的支持,需要如下设置:
PHP/extensions/"
(注意,建议写全地址,并且后面加上/,很多时候是因为这里设置不对,才导致无法加载其它模块的dll的)
再打开
extension=PHP_gd2.dll
但如果是安装iconv.dll,按上面方法,打开PHP_iconv.dll后,还是无法开启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库)

PHP.ini里面的PHP_iconv.dll

PHPinfo();检测是否开启iconv。

最近在做一个程序,需要用到iconv函数把抓取来过的utf-8编码的页面转成gb2312, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一些。 让我郁闷了好一会儿,去网上一查资料才知道这是iconv函数一个bug。iconv在转换字符"—"到gb2312时会出错
解决方法很简单,就是在需要转成的编码后加 "//IGnorE" 也就是iconv函数第二个参数后.如下:
以下为引用的内容
norE",$data)
ignore的意思是忽略转换时的错误,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

这个iconv()这个函数,在PHP5中是内置的.谢谢.

列子

代码如下:
PHP
echo $str= '你好,这里是卖咖啡!';
echo '
';

echo iconv('GB2312','UTF-8',$str); //将字符串的编码从GB2312转到UTF-8
echo '
';

echo iconv_substr($str,1,'UTF-8'); //按字符个数截取而非字节
print_r(iconv_get_encoding()); //得到当前页面编码信息

echo iconv_strlen($str,'UTF-8'); //得到设定编码的字符串长度

//也有这样用的

$content = iconv("UTF-8","gbk//TRANSLIT",$content);
?>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐