`

AJAX中文乱码的几种后台的解决方案

    博客分类:
  • AJAX
阅读更多
1、使用POST方式传参
 sPara += sName + "=" + encodeURI(encodeURI(sValue)) + "&";
 xmlHttp.onreadystatechange = handleStateChange;	
 xmlHttp.open( "POST" , sURL , true );
 xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	
 xmlHttp.send(sPara);


注意,这里我使用了两次encodeURI,encodeURI(encodeURI(sValue))


String providerName = request.getParameter("providerName");
 //post 传递的时候,一定是用utf8编码的
providerName = URLDecoder.decode(providerName , "utf-8");


分析:当调用request.getParameter()函数时,会自动进行一次URI的解码过程,调用时内置的解码过程会导致乱码出现。而URI 编码两次后,request.getParameter()函数得到的是原信息URI编码一次的内容。再用可控的解码函数 java.net.URLDecoder.decode()就可解出原始的正确的信息。

2、使用GET方式传参
GET方式要比POST方法好转码,但是它有字符限制
有两种方式
一、在后台添加unescape方法进行解码
前台使用javascript的escape方法进行转码
public static String unescape (String src)
{
    StringBuffer tmp = new StringBuffer();
    tmp.ensureCapacity(src.length());
    int lastPos=0,pos=0;
    char ch;
    while (lastPos<src.length())
    {
     pos = src.indexOf("%",lastPos);
     if (pos == lastPos)
     {
      if (src.charAt(pos+1)=='u')
      {
       ch = (char)Integer.parseInt(src.substring(pos+2,pos+6),16);
       tmp.append(ch);
       lastPos = pos+6;
       }
      else
      {
       ch = (char)Integer.parseInt(src.substring(pos+1,pos+3),16);
       tmp.append(ch);
       lastPos = pos+3;
       }
      }
     else
     {
      if (pos == -1)
      {
       tmp.append(src.substring(lastPos));
       lastPos=src.length();
       }
      else
      {
       tmp.append(src.substring(lastPos,pos));
       lastPos=pos;
       }
      }
    }
    return tmp.toString();
 }



二、直接使用encodeURI进行转码
前台直接使用encodeURI进行转码
在后台使用request.getParameter("name");就可以得到原始数据。
原因可能是,当调用request.getParameter()函数时,程会自动进行一次URI的解码过

这几种方式都主要用于,前台向后台传数据,后台向前台转数据没有描述


注:文章主要用于自己的经验积累,所以没有写的太细,如有人来看,看不懂也不要骂我啊
分享到:
评论
1 楼 leejah 2010-09-16  
getParameter

相关推荐

    Ajax中文乱码问题解决方案

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

    ajax乱码解决方案

    UTF-8编码是一种常见的Unicode实现,它使用1到4个字节来表示每个Unicode字符,对于中文汉字,通常每个字占用3个字节。因此,当Ajax发送或接收UTF-8编码的数据时,理论上不应出现乱码。 然而,乱码问题可能源于以下...

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

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

    Ajax 中文乱码问题

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

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

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

    ajax中文乱码如何解决

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

    jquery的ajax编码乱码解决方案

    简单整理的乱码处理方案,jquery的ajax解决UTF-8以及GBK的问题

    Ajax乱码解决方案(docx)

    解决Ajax乱码问题的关键在于确保整个数据传输链路上的编码一致性。 1. **字符编码** - **UTF-8**:广泛使用的编码格式,支持多种语言,包括中文,且与CPU字节顺序无关,具有较高的容错能力。 - **GBK/GB2312**:...

    Ajax中文乱码问题解决方法

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

    ajax提交中文乱码解决方法

    为了解决AJAX提交中文乱码的问题,可以从以下几个方面入手: ##### 1. 客户端编码处理 - **使用`URLEncoder`编码**:在发送请求之前,可以先使用Java的`URLEncoder.encode()`方法将中文字符串进行编码,然后再发送...

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

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

    c# ajax post数据乱码解决

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

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

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

    AJAX中文乱码解决

    本教程将详细介绍如何解决AJAX中文乱码问题,以在Windows Server 2008环境下为例,但原理适用于其他操作系统。 首先,我们需要理解乱码产生的原因。乱码通常是由字符编码不一致引起的。服务器和客户端之间传输的...

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

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

    ajax中文乱码问题解决方案

    **Ajax中文乱码问题详解与解决方案** 在开发Web应用程序时,尤其是在处理中文字符时,Ajax中文乱码问题是一个常见的困扰。这是因为不同的系统、浏览器、服务器和文件可能使用不同的字符编码,导致数据在传输过程中...

    Ajax乱码解决方案

    ### Ajax乱码解决方案 在进行Ajax开发的过程中,经常会遇到数据编码问题导致的乱码现象。这类问题虽然看似简单,但若处理不当,则可能耗费大量时间进行调试与解决。本文将结合一个具体的案例来探讨如何有效地解决...

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

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

Global site tag (gtag.js) - Google Analytics