Heim >Backend-Entwicklung >PHP-Tutorial >php中iconv函数用法详解介绍_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= '你好,欢迎访问胡文芳的博客,该博客记录一个程序员的成长过程!'; |
iconv函数一个小bug
试试把以下这段字符串用iconv转换一下看看效果。
代码如下 | 复制代码 |
$str="www.bkjia.com,ok!the string is € .我要转换他!⊙●○①⊕◎Θ⊙¤?"; |
在我的电脑中返回的结果是第一个特殊字符以后的字符都不能显示。
iconv有两个参数:分别是TRANSLIT 和IGNORE ,分别的含义是TRANSLIT 表示如果目标编码里面不能翻译原编码,那么就直接找一个类似的最相近的字符或者字符串替代,例如€可能会被替换为EUR;而IGNORE 遇到目标字符集不能翻译的原始字符则直接跳过忽略,不返回false。
使用方法如下:
代码如下 | 复制代码 |
$infocontent=iconv("utf-8","gbk//IGNORE",$infocontent); 或者 $infocontent=iconv("utf-8","gbk//TRANSLIT",$infocontent); |
鉴于此,我认为iconv应该提供一个默认的参数IGNORE,避免开发者使用不善时出现返回空字符串的情况。