ajax乱码解决办法:1. 在服务器指定发送数据的格式;2. PHP发送中文、Ajax接收只需在php顶部加入代码。其中,在jsp文件中response.setContentType(“text/text;charset=UTF-8″);//返回的是txt文本文件或是response.setContentType(“text/xml;charset=UTF-8″);//返回的xml文件。
一、ajax乱码解决办法
1. 在服务器指定发送数据的格式
在服务器指定发送数据的格式:
在jsp文件中
代码如下
response.setContentType(“text/text;charset=UTF-8″);//返回的是txt文本文件
或是
response.setContentType(“text/xml;charset=UTF-8″);//返回的xml文件
PHP:header(”Content-Type:text/html;charset=GB2312”);
2. PHP发送中文、Ajax接收只需在php顶部加入代码
PHP发送中文、Ajax接收
只需在php顶部加入一句:代码如下
header(‘Content-type: text/html;charset=GB2312′);
xmlHttp会正确解析其中的中文。
Ajax发送中文、PHP接收
这个比较复杂:
Ajax中先用encodeURIComponent对要提交的中文进行编码
PHP中:
代码如下
$GB2312string=iconv( ‘UTF-8′, ‘gb2312//IGNORE’ , $RequestAjaxString);
PHP写入MySQL数据库
建立conn时,query一下set names “gb2312″代码如下
iconv( “UTF-8″,”GBK” , $gametypes[“name”]);乱码问题是AJAX取数据时产生乱码,本来页面是采用GBK编码的。后来显示为乱码,使用UE把它转换成UTF-8后,页面上原来的元素就可以显示正确了。但是,数据库取出来的值还是会乱码。
ob_get_contents ();
取出所有的显示数据,然后输出到日志文件,显示全是乱码。
使用UE把文件再转换成GBK,然后再输出,显示就正确了。
这里再使用:
代码如下
header(‘Content-Type:text/html;charset=GBK’);
前台页面显示就正常。
延伸阅读:
二、ajax乱码介绍
AJAX传值时采用的是UTF-8编码格式,客户端中文字符传输到服务器端时,如果服务器编码格式或者所采用的MVC框架的编码格式不是UTF-8,则很可能会出现中文乱码。解决办法如下:
客户端用js函数encodeURI()对中文字符进行两次编码,服务器端采用URLDecoder类对客户端传输过来的中文字符进行UTF-8格式的解码。
复制代码
$.ajax({
type: “post”,
url: “createNewGroup.action”,
data:“name=”+encodeURI(encodeURI(“张三”)),
success: function(msg){
alert(msg);
}
});
复制代码
服务器端代码:
String name = URLDecoder.decode(“客户端传输过来的中文字符”,“UTF-8”);
以上就是关于ajax乱码的内容希望对大家有帮助。