JavaWeb中请求与响应的乱码问题

         对于学习JavaWeb的同学,乱码无疑是令人最头痛的问题之一,当然博主也曾因为这样的问题弄得满头雾水,所以在这儿稍作总结。首先我们应该知道常见的字符编码都有哪些,以及出现乱码的根本原因是什么。

        常见的编码有:ISO-8859-1(不支持中文),GBKGB2312(中国编码,支持中文),UTF-8 (万国码,支持所有国家语言,推荐使用)。

        乱码原因:解码时所用的码表和编码时所用的码表不一致。其中编码的意思是字符串-->字节,解码的意思是字节-->字符串。

        我们先来看看服务器响应中的乱码问题:(博主所用的服务器为Tomacat)Tomcat服务器中的默认编码格式为ISO-8859-1,而浏览器默认的编码格式与主机内码相同即在中国一般都是GBK,所以要想不乱码我们必须在输出响应信息之前保持两种编码格式相同,博主在这儿使用的推荐编码格式UTF-8。

 ①.设置服务器编码格式的方法是:

response.setCharacterEnconding("UTF-8");
②.设置浏览器编码格式的方法是:
response.setHeader("Content-Type","text/html;charset=UTF-8");
还有一种便捷的方式来设置服务器与浏览器的编码格式保持一致:
response.setContentType("text/html;charset=UTF-8");
        下面看一下在请求信息中如何能够不乱码:在浏览器的地址栏中输入的信息一般为GBK的编码格式,在表单或者链接中输入的信息一般与当前网页的编码格式相同,与上面同样的道理,我们要在获取请求信息之前设置服务器编码与获取的参数的编码格式相同。

①.一般在地址栏中我们不会输入中文,所以乱码很难出现,这里也就不赘述这种问题解决方式。

②.在获取表单信息时,我们常使用反编的形式,即如下所示:

//获取表单参数
String name=request.getParamete("name");
//获取参数的字节数组(编码)
byte[] bytes=name.getBytes("ISO-8859-1");
//重新解码
name=new String(bytes,"UTF-8");
         相信大家看完之后,对于JavaWeb中请求与响应中的乱码问题已经有所掌握,如果文章中有错误之处欢迎拍砖。 大笑
             



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值