详解PHP中的mb_detect_encoding函数使用方法
《PHP实例:详解PHP中的mb_detect_encoding函数使用方法》要点: PHP实战php中可以使用 mb_detect_encoding() 函数来判断字符串是什么编码的. PHP实战当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF-8,或者UTF-8和GBK(这里主要是对于cp936的判断),网上说是由于字符短时mb_detect_encoding会出现误判. PHP实战代码如下: PHP实战
$encode = mb_detect_encoding($keytitle,array("ASCII","UTF-8","GB2312","GBK","BIG5"));
if($encode == "UTF-8"){
$keytitle = iconv("UTF-8",$keytitle);
}
PHP实战这段代码的作用是检测字符串的编码是否UTF-8,是的话就转换为GBK. PHP实战
$encode = mb_detect_encoding($keytitle,"UTF-8");
PHP实战三个参数分别是:被检测的输入变量、编码方式的检测顺序(一旦为真,后面自动忽略)、strict模式对编码检测的顺序进行调整,将最大可能性放在前面,这样减少被错误转换的机会. PHP实战PHP字符串编码的转换和判断 PHP实战 PHP实战但 iconv 只能办理编码预先知道的情况,如果字符串编码未知,则需要先探测其编码,这时可能会用到 mb_string 扩展库: PHP实战可是 mb_detect_encoding 存在一个硬伤,经常出现判断不准确的情况.或许这样就可以办理: PHP实战? PHP实战
// 使用 iconv 转换并判断是否等值,效率不高
function is_utf8 ($str) {
if ($str === iconv('UTF-8',$str)) {
return 'UTF-8';
}
}
// 多种编码的情况
function detect_encoding ($str) {
foreach (array('GBK','UTF-8') as $v) {
if ($str === iconv($v,$v . '//IGNORE',$str)) {
return $v;
}
}
}
PHP实战通过以上方式得到字符串编码信息后,就可以利用 iconv 或 mb_convert_encoding 来转换编码了. PHP实战Call to undefined function mb_detect_encoding()错误办理 PHP实战 PHP实战二、Fatal error: Call to undefined function: mb_detect_encoding() in C:Program FilesAppServwww...xxx.php on line 1355 PHP实战刚刚发现其实不拷贝php_mbstring.dll这个文件到php.ini所在目录也行 PHP实战Linux系统下: PHP实战出现下面问题时: PHP实战PHP?? 1. {main}() /home/xu/web/whois/ab.cn.php:0 PHP实战??? 首先使用yum或者apt安装mbstring.so,使用命令:yum install php-mbstring或者apt-get install php-mbstring (ubuntu用户最好使用apt-cache search mbstring搜索一番后再安装,软件名字可能有误) PHP实战??? 然后修改php.ini:执行vim /etc/php.ini,加入extension="/usr/lib/php/modules/mbstring.so"内容,后面的路径可能不一样,根据mbstring.so存放的目录做相应的修改即可.一般是不用变动的. 欢迎参与《PHP实例:详解PHP中的mb_detect_encoding函数使用方法》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |