今天上午做项目时候因为要用到ajax异步提交数据,这里我用的是prototype.js里包的ajax对象,大家也可以自己实现XMLHttpRequest对象,vm页面用的是gbk编码(如果是utf-8就不会有问题了),这个url带有两个参数,一个是id,一个是汉字内容,浪费了不少时间!以下是说明:
例如如下js:
function editPollDetail(pollDetailId,pollId)
{
var xuanxiangneirong=document.getElementById('xuanxiangneirong'+pollDetailId);
var url = 'createThread.do';
var pars = 'method=editOnePollDetail&pollDetailId='+pollDetailId+'&content='+xuanxiangneirong.value+'&pollId='+pollId;
var ajax = new Ajax.Request(url,{method:'post',parameters:pars,onComplete:showEditResult});
}
其中xuanxiangneirong是中文,开始我用了很多方法,在action中utf-8,gbk ,iso8859-1相互转换,用了3的排列的可能全试了, 就是不行。于是上网又转了很长时间看了很多,还是不行,最后我自己解决了这个问题,代码如下:
function editPollDetail(pollDetailId,pollId)
{
var xuanxiangneirong=document.getElementById('xuanxiangneirong'+pollDetailId);
var url = 'createThread.do';
var pars = 'method=editOnePollDetail&pollDetailId='+pollDetailId+'&content='+encodeURI(encodeURI(xuanxiangneirong.value))+'&pollId='+pollId; //注意这里用了两次js的encodeURI进行转码。
var ajax = new Ajax.Request(url,{method:'post',parameters:pars,onComplete:showEditResult});
}
在action中做如下的处理:
public ActionForward editOnePollDetail(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
response.setContentType("text/plain; charset=GBK");
String id=request.getParameter("pollDetailId");
String pollid=request.getParameter("pollId");
String content=request.getParameter("content");
try
{
content=URLDecoder.decode(content,"utf8"); //因为ajax默认是utf-8编码,这里将刚才的转码进行解析,这样得到就是你要传的汉字了。
System.out.println(content);
}catch(Exception e)
{
System.out.println("解码出现异常");
e.printStackTrace();
}
}
大家可以做个demo,不过建议大家以后页面都用utf-8的,这样就能避免这些问题。
分享到:
相关推荐
本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...
### jQuery + ASP AJAX 中文乱码问题解决方案 在开发基于jQuery和ASP的Web应用程序时,中文乱码问题可能成为困扰开发者的一大难题。特别是在使用Ajax进行前后端数据交互时,中文字符可能会出现乱码现象,影响用户...
### Ajax 中文乱码问题详解 #### 一、引言 在进行Web开发的过程中,我们经常需要使用Ajax技术来实现异步数据交换。然而,在处理包含中文字符的数据时,经常会遇到中文乱码的问题。这个问题主要源于不同的编码方式...
首先,我们要理解Ajax中文乱码的根源,它通常涉及到字符编码的不一致,尤其是在客户端与服务器之间的通信过程中。 Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许在不刷新整个页面的情况...
本文将深入探讨Ajax中文乱码问题的原因及其解决方案。 首先,我们需要理解Ajax乱码的根源。当JavaScript发送HTTP请求时,如果服务器和客户端之间关于字符编码的约定不一致,就会导致乱码。常见的原因包括: 1. **...
【Java认证:Ajax中文乱码问题及解决方法】 在Java Web开发中,使用Ajax进行异步数据交互时,经常会遇到中文乱码的问题。这主要涉及到字符编码的处理,特别是当Ajax请求发送的数据包含中文字符时。以下是两种常见的...
本教程将详细介绍如何解决AJAX中文乱码问题,以在Windows Server 2008环境下为例,但原理适用于其他操作系统。 首先,我们需要理解乱码产生的原因。乱码通常是由字符编码不一致引起的。服务器和客户端之间传输的...
本篇文章将对AJAX中文乱码问题进行深入探讨,并提供解决策略。 1. 乱码产生的原因 - 数据编码不一致:服务器返回的数据编码与前端页面的编码格式不一致,比如服务器使用UTF-8,而前端页面使用GBK。 - AJAX请求...
针对java web开发方面中文乱码情况的总结,基本各种情况都有了!
为了解决AJAX中文乱码问题,常见的方法包括: 1. 使用encodeURIComponent进行编码 通过对发送的数据使用encodeURIComponent函数进行编码,可以转换数据格式,使其适应URL传输规范。然后,需要确保服务器端使用相应...
### GBK编码下jQuery_Ajax中文乱码解决方案 #### 背景介绍 在Web开发过程中,使用Ajax技术与服务器端交互数据时经常会遇到字符集编码的问题,尤其是在使用GBK编码的环境中,通过jQuery发起的Ajax请求往往会导致...
以下是一些解决Ajax中文乱码问题的方法: 1. **请求头设置**: 当发送Ajax请求时,需要确保请求头中的`Content-Type`字段正确设置。通常,我们应该将其设置为`"application/x-www-form-urlencoded; charset=utf-8...
在开发过程中,尤其是在使用C#与ASP.NET进行Web开发时,经常会遇到客户端通过Ajax向服务器端发送Post请求后,服务器端接收到的数据出现乱码的问题。这种情况不仅影响用户体验,也可能会导致程序逻辑出现问题。本文将...
今天弄了一天的Ajax中文乱码问题,Ajax的乱码问题分为两种: 1. JavaScript输出的中文乱码, 比如:alert(“中文乱码测试”); 解决的办法比较简单,就是把jsp里所有的charset和pageEncoding的值都设置成相同...
解决JQuery AJAX中文乱码问题的步骤如下: 1. **设置请求编码**:在发送AJAX请求时,确保请求头中的`Content-Type`设置为`application/x-www-form-urlencoded;charset=UTF-8`。对于JQuery,你可以这样做: ```...
AJAX中文问题分为两大类: 1)发送路径中的参数有中文,在服务器段接收参数值是乱码 例如: var url=”a.jsp?name=小李”; xmlHTTP.open (“post”,url,true); 解决办法: 利用javascript的提供的escape()或...
在实际应用中,我们常常会遇到Ajax与服务器交互时出现中文乱码的问题,尤其是在发送和接收中文数据时。这个问题主要涉及到字符编码的处理,解决起来需要对HTTP协议、字符编码原理以及Struts框架的工作机制有一定的...