php中可以使用 mb_detect_encoding() 函数来判断字符串是什么编码的。
当在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"));
iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库。
用法如下:
$string = "欢迎访问郑州网建!";
iconv("utf8","gbk",$string)//将字符串string 编码由utf8转变成gbk;
扩展如下:
php数组中文排序,文件格式一般用utf8,直接用asort排序不行。若是gbk和gb2312可以。这跟编码有关。gbk和gb2312本身的编码就是用拼音排序的。
function utf8_array_asort(&$array) {
if(!isset($array) || !is_array($array)) {
return false;
}
//判断编码
$encode = mb_detect_encoding($q, array('GB2312','GBK','UTF-8'));
echo $encode."<br/>";
if($encode=="GB2312")
{
$q = iconv("GBK","UTF-8",$q);
}