Ajax中文乱码问题解决方案

      中文乱码问题一直是困扰中国程序员的一大难题,但归根结底,问题的实质都是一样的。有些时候会莫名其妙地出现乱码问题,而有些时候乱码问题又莫名其妙地解决了!连自己都不知道是为什么!

  昨天鼓捣一晚上也没有把Ajax请求中的中文乱码问题解决,可今天早上随便乱改,问题居然解决了???我的天啊,真的不知道为什么!而且这种解决方案是我认为不可行的!大哭 

  我在网上找遍了解决乱码问题资料,可没有一个能行的通,无奈只好自己研究赞!其实解决的方法很简单,具体如下:

 

  将客户端文件的编码设置为GB2312,如下面代码所示:

Html代码
  1. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />  

  在发送的URL地址中的查询字符串或者是使用POST方式发送的请求内容不要使用escape函数进行编码,切记!

  在服务器端的jsp文件也设置为gb2312编码格式,如下面代码所示:  

jsp 代码
  1.   

或者设置response的头,如下面代码所示:

java 代码
  1. response.setHeader("Content-Type","text/html; charset=gb2312");  

两者原理是一样的。

  最着关键的是在获取参数时应该对获取字符串进行重新编码,如下面代码所示:

  

java 代码
  1. String username = new String(request.getParameter("username").getBytes("ISO8859_1"),"GB2312");   

其中,username为接收的参数。

直接使用out.print(username);就可以将中文返回给客户端,在客户端直接使用xmlHttp.responseText属性就可以直接使用返回的中文了!谄笑

  附件中我测试用的一个小例子,在tomcat6.0和resin2.1.8中通过测试!

   其实,还有一个一劳永逸的解决方案,就是添加一个过滤器。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值