php字符串编码问题

一、PHP编码转换函数

mb_convert_encoding—Convertcharacterencoding(PHP4>=4.0.6,PHP5)

用法:

stringmb_convert_encoding(stringstr,stringto_encoding[,mixedfrom_encoding])

需要先启用mbstring扩展库,在php.ini里将;extension=php_mbstring.dll前面的;去掉

stringiconv(stringin_charset,stringout_charset,stringstr)

注意:

第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT和//IGNORE,

其中:

//TRANSLIT会自动将不能直接转化的字符变成一个或多个近似的字符,

//IGNORE会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。

ReturnstheconvertedstringorFALSEonfailure.

二、自动获取字符串编码函数

当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF-8,或者UTF-8和GBK(这里主要是对于cp936的判断),网上说是由于字符短是,mb_detect_encoding会出现误判。

例如:

$encode=mb_detect_encoding($keytitle,array("ASCII",'UTF-8′,"GB2312′,"GBK",'BIG5′));

if($encode==“UTF-8″){

$keytitle=iconv("UTF-8″,"GBK",$keytitle);

}

这段代码的作用是检测字符串的编码是否UTF-8,是的话就转换为GBK。

其中mb是指multi-bytes的意思,是它的一个缩写,真牛B。

相关推荐