`
java_mike
  • 浏览: 85331 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

AJAX中文乱码解决

阅读更多
   以下是我的AJAX中文乱码的解决方案:

客户端对url进行两次转码:(str可能是中文)
...
var url = 'policy.do?method=searchSuggest&word=' + str+"&now="+new Date().getTime();
url = encodeURI(url);
url = encodeURI(url);
...


服务器段对参数值进行解码:

...
String word = request.getParameter("word");
word = java.net.URLDecoder.decode(word,"UTF-8");
...
分享到:
评论
36 楼 nanjiwubing123 2012-07-04  
头像是java之父。
35 楼 nanjiwubing123 2012-07-04  
不错 ,解决了问题。
34 楼 kenee1314 2010-01-07  
可以用ESCAPE嘛!真是的
33 楼 supersun 2009-11-30  
<p>[quote=&amp;quot;java_mike&amp;quot;]   以下是我的AJAX中文乱码的解决方案:<br><br>客户端对url进行两次转码:(str可能是中文)<br><br>[code=&amp;quot;js&amp;quot;]...<br>var url = 'policy.do?method=searchSuggest&amp;amp;word=' + str+&amp;quot;&amp;amp;now=&amp;quot;+new Date().getTime();<br>url = encodeURI(url);<br>url = encodeURI(url);<br>...<br><br><br><br>服务器段对参数值进行解码:<br><br><br>[code=&amp;quot;java&amp;quot;]...<br>String word = request.getParameter(&amp;quot;word&amp;quot;);<br>word = java.net.URLDecoder.decode(word,&amp;quot;UTF-8&amp;quot;);<br>...<br><br><br><br>其实一次就够了,在Servlet或Action里<br><br>[code=&amp;quot;java&amp;quot;]String str=request.getParameter(&amp;quot;name&amp;quot;);<br><br>response.setCharacterEncoding(&amp;quot;UTF-8&amp;quot;);<br>或<br>response.setContentType(&amp;quot;text/html;charset=utf-8&amp;quot;);<br><br>response.getWriter().write(str);<br><br><br>页面Ajax部分:<br><br><br>[code=&amp;quot;js&amp;quot;]var url = '/sample.do?name=' + encodeURIComponent('中文名字'); <br>new Ajax.Request(url, {   <br>method: 'get',  <br>encoding:'UTF-8' ,<br>onSuccess: function(transport) {     <br>var notice = $('notice');   <br>if(transport.responseText!=null)  {<br>notice=transport.responseText;<br>alert(notice);<br>}<br>} <br>}); <br></p>
<p> </p>
32 楼 初出茅庐555 2009-10-10  
以前用过,可以解决Ajax乱码,有些情况好像不行。
31 楼 greenhunter 2009-09-24  
在页面encodeURI()一次,在后台URLDecoder.decode(request.getParameter(“参数名”), "utf8") 我是这样解决的
30 楼 satanest 2009-09-20  
这样来啦
1.页面的所有编码设置(包括meta 标签)都设成utf-8
2.后台加个字符编码过滤器,主要代码就是
httpServletRequest.setCharacterEncoding("UTF-8");

若要输出内容,则输出之前加
httpServletResponse.setCharacterEncoding("utf-8");


我用了好久,都没发现乱码.
29 楼 vager 2009-09-19  
使用encodeURI()两次的方式发送到服务器应用程序,那么在服务器是做了怎样的处理之后再将uri发送到服务器端的?是将uri使用ISO8859-1编码一次再发送到服务器端的吗?
28 楼 axpwx 2009-09-19  
get的时候,只要get的页面的声明正确的编码即可;
post的时候,如果接受页面是gbk的,将接受的数据转码一次即可。
27 楼 Seraph115 2009-09-08  
ExtJS中JSON数据传递乱码的解决
http://seraph115.iteye.com/blog/391665
26 楼 hbing110 2009-09-08  
习惯在马桶上思考 写道
之前在处理AJAX时我也碰到类似的问题...转了2次,但最后特殊情况问题还是不能解决.最后是用BASE64来做的,客户端与服务器分开处理....结果OK

我也同样这样做的   结果ok
25 楼 lf008 2009-09-03  
2次编码那种做法是网页编码不是utf-8时候才出现的乱码的解决方法,若网页编码是utf8就没那必要了
24 楼 Emiya_wang 2009-09-01  
之前也碰到过这个问题 也是通过转两次就OK了  
但是并不了解其中的道理
23 楼 gundumw100 2009-08-31  
java_mike 写道
   以下是我的AJAX中文乱码的解决方案:

客户端对url进行两次转码:(str可能是中文)
...
var url = 'policy.do?method=searchSuggest&word=' + str+"&now="+new Date().getTime();
url = encodeURI(url);
url = encodeURI(url);
...


服务器段对参数值进行解码:

...
String word = request.getParameter("word");
word = java.net.URLDecoder.decode(word,"UTF-8");
...

这个是我的做法啊,哈哈。
22 楼 yiminghe 2009-08-27  
<p>所有的回答都是治标不治本<br><br>好好学习下这个吧:<br><br><a href="http://yiminghe.iteye.com/blog/243812" target="_blank">深入浅出 web 编码(以前转载的)</a></p>
<p> </p>
<p> </p>
<p> </p>
<p>ps . 我的一点看法:</p>
<h3 class="type_original" title="原创"><a href="http://yiminghe.iteye.com/blog/247837">web 编码 解码 乱码</a></h3>
<p> </p>
<p> </p>
21 楼 holin 2009-08-26  
neptune 写道
var url = 'policy.do?method=searchSuggest&word=' + encodeURIComponent(str)+"&now="+new Date().getTime(); 



我一般也这么用的,lz可以试试
20 楼 piaoling 2009-08-26  
两次encodeURI操作,是把原中文彻底转换成iso8859-1编码进行传输
这样服务器,先通一次UTF8转换,再通过一次java.net.URLDecoder.decode(param2,"utf-8"); 就可以转成中文,这种方式也算是一种中文的终解决方法
19 楼 SteveGY 2009-08-26  
adaikiss 写道
peacock 写道
文件编码=数据库编码=输出编码=网页编码

正解!

只有这个是正解,其他的什么转码都是既麻烦,又不通用,现在你解决了中文,如果是日语、中文、西班牙语、英语同时需要的页面呢??utf-8, 所有的html, js, css, servlet全部统一u8,现在的ajax wrapper一般都附带一个字符编码的设置,设成u8就可以了
18 楼 adaikiss 2009-08-26  
peacock 写道
文件编码=数据库编码=输出编码=网页编码

正解!
17 楼 InnocentBoy 2009-08-26  
如果是utf-8编码,就是以get方式提交乱码的问题,在tomcat里配置一下就可以了,URIEncoding='utf-8',哪里都不用转。如果post提交本身就没问题。

相关推荐

    Ajax中文乱码问题解决方案

    本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...

    GBK编码下jQuery_Ajax中文乱码解决方案

    ### GBK编码下jQuery_Ajax中文乱码解决方案 #### 背景介绍 在Web开发过程中,使用Ajax技术与服务器端交互数据时经常会遇到字符集编码的问题,尤其是在使用GBK编码的环境中,通过jQuery发起的Ajax请求往往会导致...

    jquery+asp ajax 中文乱码问题解决文档

    ### jQuery + ASP AJAX 中文乱码问题解决方案 在开发基于jQuery和ASP的Web应用程序时,中文乱码问题可能成为困扰开发者的一大难题。特别是在使用Ajax进行前后端数据交互时,中文字符可能会出现乱码现象,影响用户...

    ajax中文乱码如何解决

    针对Ajax中文乱码问题,这里提出一个解决方案,这个方案在作者的开发环境中(XP, Eclipse, GB18030编码)已经成功解决了问题: 1. **设置请求头**: 在发送POST请求前,需要设置Content-Type头,告诉服务器数据的...

    Ajax 中文乱码问题

    本文将详细探讨如何解决Ajax请求过程中的中文乱码问题,并提供具体的解决方案。 #### 二、问题分析 在使用Ajax进行数据传输时,中文乱码问题通常出现在以下两个环节: 1. **发送表单数据时中文乱码**:当通过Ajax...

    Ajax中文乱码问题解决方法

    本文将深入探讨Ajax中文乱码问题的原因及其解决方案。 首先,我们需要理解Ajax乱码的根源。当JavaScript发送HTTP请求时,如果服务器和客户端之间关于字符编码的约定不一致,就会导致乱码。常见的原因包括: 1. **...

    ajax提交中文乱码解决方法

    ### AJAX提交中文乱码解决方法 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过JavaScript发起异步请求,与服务器进行数据交换,从而...

    c# ajax post数据乱码解决

    本文将详细讲解如何解决C# Ajax Post数据乱码问题。 ### 一、理解问题根源 首先,我们需要了解为什么会出现乱码的情况。这通常是因为客户端和服务器端对于字符编码的理解不一致所导致的。具体来说,如果客户端使用...

    ajax乱码解决方案

    **Ajax 乱码解决方案** Ajax 乱码问题在开发Web应用程序时经常遇到,尤其是在涉及到不同编码格式时。本文将深入探讨Ajax与字符编码相关的技术细节,并提供几种有效的解决策略。 首先,JavaScript处理字符的方式是...

    java认证_Ajax中文乱码问题及解决方法.doc

    【Java认证:Ajax中文乱码问题及解决方法】 在Java Web开发中,使用Ajax进行异步数据交互时,经常会遇到中文乱码的问题。这主要涉及到字符编码的处理,特别是当Ajax请求发送的数据包含中文字符时。以下是两种常见的...

    AJAX中文乱码解决新方法分享

    为了解决AJAX中文乱码问题,常见的方法包括: 1. 使用encodeURIComponent进行编码 通过对发送的数据使用encodeURIComponent函数进行编码,可以转换数据格式,使其适应URL传输规范。然后,需要确保服务器端使用相应...

    Ajax乱码解决方案(docx)

    3. **JSP和Struts的乱码解决方案** - 使用过滤器(如`SetCharacterEncodingFilter`)设定请求和响应的编码为UTF-8,确保数据在传输过程中不会出现乱码。 - 对于JSP页面,可以在页面顶部添加`;charset=UTF-8" %&gt;`来...

    ajax到servlet乱码解决

    AJAX 到 Servlet 乱码解决方案 在 Web 开发中,使用 AJAX 通过 URL 传参数给 Servlet 时,经常会遇到乱码问题,即使使用了统一的字符编码也没用。下面我们来探讨这个问题的解决方案。 问题描述 当我们使用 AJAX ...

    ajax提交,后台中文乱码解决

    本文将基于提供的文件信息,详细解析两种解决Ajax提交后台取值中文乱码的方法。 ### 方法一:使用URL编码 在第一个示例中,开发者通过调用`encodeURIComponent()`或`encodeURI()`函数对请求URL中的参数进行编码。...

    ajax传递中文参数乱码解决办法

    ### AJAX传递中文参数乱码解决办法 在Web开发过程中,数据传输是不可或缺的一部分,而AJAX作为一种无需重新加载整个页面的情况下就能与服务器交换数据的技术,被广泛应用于动态数据交互场景中。然而,在处理中文等...

    Struts框架下Ajax发送中文乱码问题的解决

    总结来说,解决Struts框架下Ajax发送中文乱码问题的关键在于: 1. 确保Ajax请求时设置正确的`Content-Type`,以UTF-8编码发送数据。 2. 在Struts配置文件中配置`CharacterEncodingFilter`或在Action中手动设置请求...

    ajax解决中文乱码(java/jsp)

    ### AJAX解决中文乱码(Java/JSP) #### 知识点概述 在Web开发中,尤其是在使用Java与JSP技术栈进行开发时,经常会遇到的一个问题是:如何处理AJAX请求中的中文字符乱码问题。本篇文章将详细介绍如何通过前端编码...

    AJAX中文乱码

    ### AJAX中文乱码解决方案 在Web开发中,尤其是使用AJAX技术进行前后端交互时,中文乱码问题是一个常见的挑战。AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的...

Global site tag (gtag.js) - Google Analytics