今天测试一个Ajax组件的时候遇到乱码问题,在网上找了很多解决方案都未能解决,原因可能我出现乱码的问题不在传输过程,而且是在页面上就已经出现乱码
了,现象很奇怪,我直接把参数赋值为中文后alert,发现是乱码,所以不管我怎么设置和在后台解码都依然是乱码。后来找到原因,共分两点:
第一:我的meta标签设置的是: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
第二:我是把整个参数构造完后一起encodeURIComponent。
解决方案:
把meta标签改为:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
并且把参数构造的过程分别对key和value进行encodeURIComponent操作。
后台servlet解码:new String(param.getBytes("ISO-8859-1") , "UTF-8);
备注:
ajax设置为:
xhr.open("POST", url, this.async);
xhr.setRequestHeader("content-type", "text/plain");//后台解析必须的以流的形式解析
xhr.send(param);
其中param构造形式如下:
param = encodeURIComponent('key')+'='+encodeURIComponent('value')+'/n';
之前:
param = 'key'+'='+('value')+'/n';
param = encodeURIComponent(param);
这样处理出现乱码。
分享到:
相关推荐
本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...
在开发过程中,尤其是在使用C#与ASP.NET进行Web开发时,经常会遇到客户端通过Ajax向服务器端发送Post请求后,服务器端接收到的数据出现乱码的问题。这种情况不仅影响用户体验,也可能会导致程序逻辑出现问题。本文将...
本文将深入探讨Ajax中文乱码问题的原因及其解决方案。 首先,我们需要理解Ajax乱码的根源。当JavaScript发送HTTP请求时,如果服务器和客户端之间关于字符编码的约定不一致,就会导致乱码。常见的原因包括: 1. **...
本文将详细探讨如何解决Ajax请求过程中的中文乱码问题,并提供具体的解决方案。 #### 二、问题分析 在使用Ajax进行数据传输时,中文乱码问题通常出现在以下两个环节: 1. **发送表单数据时中文乱码**:当通过Ajax...
**Ajax 乱码解决方案** Ajax 乱码问题在开发Web应用程序时经常遇到,尤其是在涉及到不同编码格式时。本文将深入探讨Ajax与字符编码相关的技术细节,并提供几种有效的解决策略。 首先,JavaScript处理字符的方式是...
针对Ajax中文乱码问题,这里提出一个解决方案,这个方案在作者的开发环境中(XP, Eclipse, GB18030编码)已经成功解决了问题: 1. **设置请求头**: 在发送POST请求前,需要设置Content-Type头,告诉服务器数据的...
### AJAX提交中文乱码解决方法 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过JavaScript发起异步请求,与服务器进行数据交换,从而...
### 二、使用AJAX解决乱码问题的方法 #### 1. 设置正确的编码格式 在ASP.NET中,可以使用`<globalization>`标签在Web.config文件中设置请求和响应的编码格式。例如: ```xml requestEncoding="utf-8" ...
AJAX 到 Servlet 乱码解决方案 在 Web 开发中,使用 AJAX 通过 URL 传参数给 Servlet 时,经常会遇到乱码问题,即使使用了统一的字符编码也没用。下面我们来探讨这个问题的解决方案。 问题描述 当我们使用 AJAX ...
以下是对这个问题的详细解析和解决方案: 1. **浏览器差异**: - **Internet Explorer (IE)**:IE 的URI提交方式存在一些特殊性,它对URI进行了一定的压缩,这可能导致UTF-8编码在IE下出现问题。为了解决这个问题...
**Ajax中文乱码问题详解与解决方案** 在开发Web应用程序时,尤其是在处理中文字符时,Ajax中文乱码问题是一个常见的困扰。这是因为不同的系统、浏览器、服务器和文件可能使用不同的字符编码,导致数据在传输过程中...
2. **POST请求乱码解决方案**: - 在客户端,使用`encodeURI`或`encodeURIComponent`对参数进行编码,确保参数传输的正确性。 - 设置请求头`Content-Type`为`application/x-www-form-urlencoded`,确保数据以标准...
总结来说,解决Struts框架下Ajax发送中文乱码问题的关键在于: 1. 确保Ajax请求时设置正确的`Content-Type`,以UTF-8编码发送数据。 2. 在Struts配置文件中配置`CharacterEncodingFilter`或在Action中手动设置请求...
### Ajax传参是乱码解决方案 在Web开发过程中,数据编码问题经常会导致各种各样的乱码现象出现。尤其是在使用Ajax进行前后端交互时,如果字符编码处理不当,很容易导致前端发送给后端的数据出现乱码。本文将详细...
本文将基于提供的文件信息,详细解析两种解决Ajax提交后台取值中文乱码的方法。 ### 方法一:使用URL编码 在第一个示例中,开发者通过调用`encodeURIComponent()`或`encodeURI()`函数对请求URL中的参数进行编码。...
通过以上方法,我们可以在Jquery中有效地解决Ajax提交乱码的问题,确保客户端和服务器端之间的数据传输准确无误。关键在于理解乱码产生的原因,即字符编码的不一致,以及通过设置正确的`Content-Type`和使用`...
### Ajax乱码解决方案 在进行Ajax开发的过程中,经常会遇到数据编码问题导致的乱码现象。这类问题虽然看似简单,但若处理不当,则可能耗费大量时间进行调试与解决。本文将结合一个具体的案例来探讨如何有效地解决...
- **POST**: 同样存在乱码问题,可以通过设置Content-Type和服务器端编码来解决。 7. **实现细节**: - **GET**: 参数直接拼接在URL后面,如 `http://example.com?name=value`。 - **POST**: 需要通过设置Content...
解决JQuery AJAX中文乱码问题的步骤如下: 1. **设置请求编码**:在发送AJAX请求时,确保请求头中的`Content-Type`设置为`application/x-www-form-urlencoded;charset=UTF-8`。对于JQuery,你可以这样做: ```...