您好,欢迎访问一九零五行业门户网

php 字符串编码转换的常用几种方法_PHP教程

php教程 字符串编码转换的常用几种方法
mb_convert_encoding()
php的内码转换函数
版本(php 4 >= 4.0.6, php 5)
这个函数可以将各种编码互相转换
做一个gbk to utf-8
header(content-type: text/html; charset=utf-8);
echo mb_convert_encoding(你是我的友仔, utf-8, gbk);
?>
再来个gb2312 to big5
header(content-type: text/html; charset=big5);
echo mb_convert_encoding(你是我的朋友, big5, gb2312);
?>
iconv()
php内码转换函数,同上
因为iconv()在转换gb2312时的bug,所以要这样处理
php codeiconv( utf-8, gb2312//ignore , $str)
ignore的意思是忽略转换时的错误,发现iconv在转换字符—到gb2312时会出错,如果没有
ignore参数,所有该字符后面的字符串都无法被保存。
另外mb_convert_encoding没有这个bug,所以最好的写法是:
php codemb_convert_encoding($str,gb2312, utf-8);
但是需要先enable mbstring 扩展库。
也可以把mysql教程数据库教程的collation设成utf-8就不用作转换了
三句mysql真言
sql code
set names utf8;
set character set utf8;
set collation_connection='utf8_general_ci';
自定函数1
--------------------------------------------------------------------------------
---
网上找的转换函数,将gb2312进行转换的,修改为utf-8后转换错误,无法解析中文.....期待正
则狂人...
php code$v) {
                 if(ord($v[0])                             $ar[$k] = rawurlencode($v);
                 else
                            $ar[$k] = %u.bin2hex(iconv(gb2312,ucs-2,$v));
                                                     }
        return join(,$ar);
}
function unescape($str) {
       $str = rawurldecode($str);
       preg_match_all(/(?:%u.{4})|.+/,$str,$r);
       $ar = $r[0];
       foreach($ar as $k=>$v) {
                if(substr($v,0,2) == %u && strlen($v) == 6)
                $ar[$k] = iconv(ucs-2,gb2312,pack(h4,substr($v,-4)));
                  }
       return join(,$ar);
}
?>
自定函数2
--------------------------------------------------------------------------------
---
感谢论坛gingzai777 ,高手就是不一样,一眼就能看出问题所在.....
以后php过滤用这个行了,不需要顾虑文件编码了.....
php code
http://www.bkjia.com/phpjc/632291.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/632291.htmltecharticlephp教程 字符串编码转换的常用几种方法 mb_convert_encoding() php的内码转换函数 版本(php 4 = 4.0.6, php 5) 这个函数可以将各种编码互相转换 做一个...
其它类似信息

推荐信息