PHP学习笔记之字符串编码的转换和判断
iconv("GBK","UTF-8//IGNORE","脚本之家");//将字符串由GBK编码转换为UTF-8编码
但iconv只能解决编码预先知道的情况,如果字符串编码未知,则需要先探测其编码,这时可能会用到mb_string扩展库:
mb_detect_encoding("脚本之家");
可是mb_detect_encoding存在一个硬伤,经常出现判断不准确的情况。或许这样就可以解决:
通过以上方式得到字符串编码信息后,就可以利用iconv或mb_convert_encoding来转换编码了。
//使用iconv转换并判断是否等值,效率不高
functionis_utf8($str){
if($str===iconv("UTF-8","UTF-8//IGNORE",$str)){
return"UTF-8";
}
}
//多种编码的情况
functiondetect_encoding($str){
foreach(array("GBK","UTF-8")as$v){
if($str===iconv($v,$v."//IGNORE",$str)){
return$v;
}
}
}
相关文章