php中iconv函数用法详解介绍


[导读]
 本文章给大家来详细介绍在php中使用iconv函数来转换字符串编码方法与关于iconv函数bug分析,有需要的朋友可能参考参考。iconv不是php的默认函数,也是默认安装的模块。需要安装才能用的。如果是windows2000+php

本文章给大家来详细介绍在php中使用iconv函数来转换字符串编码方法与关于iconv函数bug分析,有需要的朋友可能参考参考。
 

iconv不是php的默认函数,也是默认安装的模块。需要安装才能用的。
如果是windows2000+php,你可以修改php.ini文件,将extension=php_iconv.dll前的";"去掉,同时你要copy你的原php安装文件下的iconv.dll到你的winnt/system32下

用法如下:

 代码如下复制代码

$string = "亲爱的朋友欢迎访问胡文芳的博客,希望给您带来一点点的帮助!";

iconv("utf8","gbk",$string)//将字符串string  编码由utf8转变成gbk;


扩展如下:

 代码如下复制代码

echo $str= '你好,欢迎访问胡文芳的博客,该博客记录一个程序员的成长过程!';
echo '
';
echo iconv('GB2312', 'UTF-8', $str); //将字符串的编码从GB2312转到UTF-8
echo '
';
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函数一个小bug

试试把以下这段字符串用iconv转换一下看看效果。

 代码如下复制代码

 $str="www.php100.com,ok!the string is € .我要转换他!⊙●○①⊕◎Θ⊙¤?";
 echo '没有任何参数 : ', iconv("utf-8", "gbk", $str)."
";

在我的电脑中返回的结果是第一个特殊字符以后的字符都不能显示。

iconv有两个参数:分别是TRANSLIT 和IGNORE   ,分别的含义是TRANSLIT 表示如果目标编码里面不能翻译原编码,那么就直接找一个类似的最相近的字符或者字符串替代,例如€可能会被替换为EUR;而IGNORE   遇到目标字符集不能翻译的原始字符则直接跳过忽略,不返回false。

使用方法如下:

 代码如下复制代码

$infocontent=iconv("utf-8","gbk//IGNORE",$infocontent);

或者

$infocontent=iconv("utf-8","gbk//TRANSLIT",$infocontent);

鉴于此,我认为iconv应该提供一个默认的参数IGNORE,避免开发者使用不善时出现返回空字符串的情况。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值