PHP
发布时间:2022-04-04 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iconv(gb2312<->utf-8),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
unix下安装
PHP的module,需要重新编译
PHP,Windows下安装模板,只需将
PHP.ini里的配置打开
相应的dll就可,例如,需要加入gb库的
支持,需要如下设置:
extension_dir = "C:/i
paddr/
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中)
(i
paddr提醒你,这步是必须的,
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);
?>
大佬总结
以上是大佬教程为你收集整理的iconv(gb2312<->utf-8)全部内容,希望文章能够帮你解决iconv(gb2312<->utf-8)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。