起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > 告诉你Java乱码怎么解决

告诉你Java乱码怎么解决

时间:2022-06-08 14:16:58来源:IT培训网 作者:Java学习网 已有: 名学员访问该课程

  快捷搜索:java乱码怎么解决

前言: java的乱码问题一直很是烦人,IT培训网小编来给大家总结一下。 1.表单使用post方式提交 这种情况比较好解决,只需

java的乱码问题一直很是烦人,IT培训网小编来给大家总结一下。

1.表单使用post方式提交

这种情况比较好解决,只需在servlet中加入request.setCharacterEncoding("utf-8");即可,当然也可以是其他的编码方式。

但是必须注意一点:因为在执行第一行request.getParameter();时,servlet已经将所有的参数得到,将他们放到容器中,以后再次执行request.getParameter();去其他参数时,只不过从servlet容器中拿而已。所以request.setCharacterEncoding("utf-8");必须放到第一个request.getParameter();前面,才能确保拿到的参数不会出现乱码,否则它不会起到任何作用。当然解决post方式提交乱码的最好方案,还是写一个过滤器。

2.表单使用get方式提交或使用URL链接

这是一种比较复杂的情况,首先浏览器会对URL中的中文参数进行编码,一般是utf-8。然后web容器会对URL中的参数进行解码,以tomcat为例,在“Connecto”标签中设置URIEncoding="utf-8",tomcat会对参数进行解码,这时在servlet中拿到的就是中文。

但往往事与愿违,如果不在tomcat中配置“URIEncoding”时(这种情况恐怕最多),它默认的是“iso-8859-1”,以这种方式解码,在servlet中肯定是乱码了。

所以解决get方式乱码有三种:

第一,在tomcat的“Connecto”标签中设置URLEncoding="utf-8"。

第二,在servlet中加入一行代码:String parameter= new String(parameter.getBytes("iso-8859-1"),"utf-8");。

第三,也是最彻底的一种,在提交之前,首先对参数进行两次编码。例如使用java的URLEncoder.encode();对参数进行两次编码,然后再将参数传入到页面;或者使用JavaScript的编码方式encodeURIComponent() 对参数两次编码。这样做,不管tomcat是何种解码,都无所谓,这是因为当对参数编了一次码后,已经是英文了,这时再对它进行一次编码和解码,无论是什么编码和解码方式,得到的都是第一次编过码的形式。那么在servlet中只需要用URLDecoder.decode(parameter,"utf-8");,即可得到中文参数。

以上就是关于“告诉你Java乱码怎么解决”的介绍,大家如果想了解更多相关知识,不妨来关注一下IT培训网的Java在线学习,里面的课程内容从入门到精通,细致全面,比较适合没有基础的小伙伴学习,希望对大家能够有所帮助哦。

文章出自:http://qh.itpxw.cn/peixun/software/2022121617.html

文章标题:告诉你Java乱码怎么解决



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容