天天看点

AJAX中文传值乱码问题解决方法

因为在你使用编码的时候一般会默认:bg2312,而ajax默认使用的是utf-8编码格式,客户端中文字符传输到服务器端时,很可能会出现中文乱码。

  下面我们就讨论一下如何解决咱们在进行软件开发过程中遇到的乱码问题:

    request.setcharacterencoding("utf-8");

    response.setcharacterencoding("utf-8");

  2、如果你使用了ajax技术时出现乱码,可以使用以下两种解决方法:

  (1)、在浏览器端对要传递的中文参数进行编码处理.代码如下:

  xmlhttp.open("post","ajaxservlet",true); //请求参数初始化

  xmlhttp.setrequestheader("content-type","application/x-www-form-urlencoded"); //因为请求方式为post,所以这里要设置请求头.get方法可以省略

  xmlhttp.send("str=" encodeuri(encodeuri("安安diy创作室"))); //向服务器端发送参数

  在服务器端代码:

  printwriter out = response.getwriter(); //得到response的输出流对象

  string str = request.getparameter("str"); //得到页面上名字为str的参数

  string str2 = urldecoder.decode(str,"utf-8"); //对得到的参数进行解码

  out.print(str); //向浏览器端发送数据

  (2)、在浏览器端对要传递的中文参数进行编码处理.代码如下:

  xmlhttp.setrequestheader("content-type","application/x-www-form-urlencoded"); //因为请求方式为post,所以这里要设置请求头.(如果请求方式为get,此句代码可以省略)

  xmlhttp.send("str=" encodeuri("安安diy创作室")); //向服务器端发送参数

  string str2 = new string((str.getbytes("iso-8859-1")),"utf-8"); //对得到的参数进行解码

  out.print(name); //向浏览器端发送数据