关于PHP下字符串乱码的问题,当一个页面存在两种编码的时候,无论你乍么选择都会出现乱码,那么如何才能解决这个问题呢?小编给大家提供的办法:
一。首先按国际惯例,检查你的文件编码与数据库、页面编码是否一致。
二。如果“一”没有问题,那么就需要先判断字符串的编码了,我们只要判断一种就可以了,关于检测是否为utf8编码的问题,网以前发表过相关文章,但是不太好用,今天在网上找到一个比较完美的函数,代码如下:
function is_utf8($liehuo_net)
{
if (preg_match(/^([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){1}/,$liehuo_net) == true || preg_match(/([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){1}$/,$liehuo_net) == true || preg_match(/([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){2,}/,$liehuo_net) == true)
{
return true;
}
else
{
return false;
}
}
{
if (preg_match(/^([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){1}/,$liehuo_net) == true || preg_match(/([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){1}$/,$liehuo_net) == true || preg_match(/([.chr(228).-.chr(233).]{1}[.chr(128).-.chr(191).]{1}[.chr(128).-.chr(191).]{1}){2,}/,$liehuo_net) == true)
{
return true;
}
else
{
return false;
}
}
现在再来说一下使用方法,高手就不用看了,因为一些初学者不懂得如何引入并使用这个函数,下边是方法。
一。将以上代码保存为独立文件,例如:liehuo_func_validt.PHP,保存到网站根目录,然后再引入到文件中,加入以下代码:
require( liehuo_func_validt.PHP );
if(is_utf8($liehuo)==1)
{
$liehuo = iconv(utf-8,gbk,$liehuo);
}
{
$liehuo = iconv(utf-8,gbk,$liehuo);
}
这样就可以了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。