十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
试试把下面类似语句放到连接语句之后
创新互联网站建设提供从项目策划、软件开发,软件安全维护、网站优化(SEO)、网站分析、效果评估等整套的建站服务,主营业务为成都网站设计、网站建设,app开发定制以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。创新互联深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
mysql_query("SET NAMES UTF8");
或 PDO
$dbh-exe("SET NAMES UTF8");
用 SET NAMES UTF8 校正一下连接编码
因为PHP 连接数据库的过程中会经过三次编码转换,比如输出的的时候
MySql Server(UTF-8) - PHP Connection( Latin1) - UTF8页面的Result(UTF-8) 这时两种编码不兼容则产生乱码。
这种情况发生在以UTF-8编码格式传输数据的时候,这开头的三个字节叫做BOM(Byte Order Mark,字节顺序标记),小程序接收到php端返回的数据后,把开头的三个字节去掉即可。
更彻底的解决办法是把php文件保存为 不带BOM的UTF-8 文件,这样返回的数据就不带BOM了
JQuery在Ajax提交出现中文乱码的解决办法:
因为编码的原因
可能存在以下几点原因:
1.HTML的编码不统一:如页面用的GB2312,好像JQuery对它支持不太好。以前我一直都是用UTF-8的,一直都没有发现;
2.文件的编码,这个不好在
表面上看到,简体中文版的操作系统存的文本格式的文件默认是 GB2312,建议把文件换成UTF-8格式的
最简单的解决办法,把提交的中文文本用 JS的 escape 处理一下,就不会现出现乱码了。
如:
//保存数据
$.ajax({
url:"/guide/savecomments.aspx" ,
type:"POST" ,
dataType:"json" ,
data:"Action=SaveCommentCommNickName=" +escape
(CommNickName.val()) + "CommContent=" +escape(CommContent.val()) + "GuideID=" + GuideID.val() + "ScoreLogType=%=ScoreLogType %",
success:function
(results){
alert(results.message);
}
});
方法:
1, 全部使用utf-8;
2, 文件存储为utf-8 without bom头;
3, 数据库使用utf-8 general ci;
4, url中的中文要rawurlencode;
5, 解析时不要decode;
传值正能是英文,传中文的话先把中文编码:urlencode();接到数据后再urldecode()转换成中文
string urldecode ( string str )
解码给出的已编码字符串中的任何 %##。返回解码后的字符串。 例子 1. urldecode() example
?php
$a = explode('', $QUERY_STRING);
$i = 0;
while ($i count($a)) {
$b = split('=', $a[$i]);
echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),
' is ', htmlspecialchars(urldecode($b[1])), "br /\n";
$i++;
}
?
string urlencode ( string str )
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码(参见 rawurlencode())不同。此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页: 例子 1. urlencode() 示例
?php
echo 'a href="mycgi?foo=', urlencode($userinput), '"';
?
其实,只要注意文件编写的时候编码、数据库的编码一般就不会有这个问题的,但是,比如你用DW(dwcs4貌似没有这个现象)打开文件,它会以默认的编码读取,一旦你保存了,那就完了,用EditPlus打开之后,右下角有编码提示,如果发现不对,另存为,覆盖一下,就可以了