ajax中文乱码解决方法总结
2012-05-16 21:58
344 查看
ajax对中文支持不好这是很多朋友这样说的,那么我觉得是他对ajax不了解,在ajax中默认是以utf-8传数据,如果你页面编码不统一就会出现乱码了,只要统一两个页面的编码就没问题了,在php中如果发送页面是 gbk在后台处理页面加上header(\'Content-Type:text/html;charset=GBK\');就解决中文乱码。
ajax乱码解决办法一:
在服务器指定发送数据的格式:
在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”);
ajax乱码解决方法二:
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');
前台页面显示就正常。
在试过这N多方法后,很多人都没发现,解决的方法其实很简单,而且其答案就在我们之前处理的JSP乱码之中。让我们先看一下AJAX的经典请求代码
xmlhttp.open( "post", url, async );
xmlhttp.setRequestHeader( "Content-Type", "text/html" );
xmlhttp.send( params );
通过前面的说明,不知道你现在看出端倪了没有。不知道是受了网上教程的影响还是其它方面影响,setRequestHeader并是万年不变的,也没人想过去改它,而问题就正好出在这个地方。回想一个JSP页面内容的编码设置,其中有这么一节:
contentType="text/html; charset=UTF-8"
现在知道问题了吧,所以我们要把第二句代码改为:
xmlhttp.setRequestHeader( "Content-Type", "text/html;charset=UTF-8" );
最后别忘了在返回数据时也设置上:
response.setContentType( "text/xml" );
response.setCharacterEncoding( "UTF-8" );
上面讲到的几种ajax中文乱码解决方法都是利用了header('Content-Type:text/html;charset=GBK');这类方法对页面的发送与接受处理数据页面编码统一了,大家现在可以尝试一下。
更多详细内容请查看:http://www.111cn.net/wy/js-ajax/42559.htm
ajax乱码解决办法一:
在服务器指定发送数据的格式:
在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”);
ajax乱码解决方法二:
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');
前台页面显示就正常。
在试过这N多方法后,很多人都没发现,解决的方法其实很简单,而且其答案就在我们之前处理的JSP乱码之中。让我们先看一下AJAX的经典请求代码
xmlhttp.open( "post", url, async );
xmlhttp.setRequestHeader( "Content-Type", "text/html" );
xmlhttp.send( params );
通过前面的说明,不知道你现在看出端倪了没有。不知道是受了网上教程的影响还是其它方面影响,setRequestHeader并是万年不变的,也没人想过去改它,而问题就正好出在这个地方。回想一个JSP页面内容的编码设置,其中有这么一节:
contentType="text/html; charset=UTF-8"
现在知道问题了吧,所以我们要把第二句代码改为:
xmlhttp.setRequestHeader( "Content-Type", "text/html;charset=UTF-8" );
最后别忘了在返回数据时也设置上:
response.setContentType( "text/xml" );
response.setCharacterEncoding( "UTF-8" );
上面讲到的几种ajax中文乱码解决方法都是利用了header('Content-Type:text/html;charset=GBK');这类方法对页面的发送与接受处理数据页面编码统一了,大家现在可以尝试一下。
更多详细内容请查看:http://www.111cn.net/wy/js-ajax/42559.htm
相关文章推荐
- ajax中文乱码解决方法总结
- ajax中文乱码解决方法总结
- PHP Ajax中文乱码问题解决方法
- 玩转web之ajax(一)---使用表单的serialize()方法中文乱码解决
- Ajax提交表单中文乱码的一种解决方法
- AJAX中文传值乱码问题解决方法
- jquery的 ajax返回值为中文时乱码解决方法
- ajax中出现中文乱码和缓存的问题的解决方法
- 今天使用jspsmartupload.jar实现上传文件的功能,发现中文乱码,于是总结了下解决方法
- AJAX在GET中文的时候解决乱码的方法
- ajax 同步调用 返回字符串 java例子(全)及 从后台返回中文乱码解决方法
- ajax中文乱码解决方法
- Java Web项目中解决中文乱码方法总结
- Java Web项目中解决中文乱码方法总结
- PHP中文乱码的常见解决方法总结
- 解决ubuntu中文乱码问题的方法总结
- PHP中文乱码的常见解决方法总结
- ztree通过ajax加载json数据中文乱码的解决方法:springmvc配置
- PHP中文乱码的常见解决方法总结
- 解决ubuntu中文乱码问题的方法总结