【Java Web问题解决】提交表单后显示乱码

【Java Web页面乱码】提交表单后显示乱码

Java Web中用表单提交信息是最常用的技术了

但是,在提交表单,显示表单信息时会经常遇到显示乱码的问题

乱码如图:

【Java Web问题解决】提交表单后显示乱码_第1张图片
一看到这种乱码,头都大

【Java Web问题解决】提交表单后显示乱码_第2张图片
不过,出现这种中文乱码是有原因的

谁让这些技术是歪果仁发明的呢

【Java Web问题解决】提交表单后显示乱码_第3张图片

这是因为表单数据在提交的时候传输数据默认使用ISO-8859-1编码,这种编码不能正确解析中文

那要想正确显示我们强大的中国汉字怎么办呢?

有两种方法供选择:(个人不建议选择第二种)

  1. 将请求对象的内容和响应的内容编码都设置为UTF-8
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

这样,就把内容用UTF-8编码,这种编码是可以正确解析中文的

  1. 使用String类的getBytes()方法

以“用户名”这一参数为例:

String username = request.getParameter("username");
username = new String(username.getBytes("ISO-8859-1"),"UTF-8");

这样,将从客户端读取的中文重新用UTF-8编码创建字符串就可以正常显示中文了

乱码问题解决后就能够正常显示中文了

【Java Web问题解决】提交表单后显示乱码_第4张图片
但是,大家会发现,用第二种方法得对每个参数都进行转换编码,很麻烦

作为程序员怎么能够用麻烦的方法呢

所以,还是用第一种方法比较好

其实,真正的项目中对于Java Web的显示乱码问题还可以用过滤器解决,不过本菜鸟还没有学到过滤器技术,以后再和大家分享

相关技术文章:
【Java Web总结】Java Web项目中 的.classpath、.mymetadata、.project文件作用
【Java Web问题解决】Tomcat报错javax.servlet.ServletException: Error instantiating servlet class.报错404
【比较】什么是“服务器端跳转”“客户端跳转”,二者有什么区别?
【总结】表单提交的get和post有什么不同?
【总结】Java Web 中的4种属性范围(page、request、session、application)
【Java Web问题解决】Tomcat启动时控制台出现中文乱码的问题解决方法
【示例项目】java实现通过身份证号码判断籍贯所在地区
【总结】HTTP协议中的状态码(200、403、404、500等)

你可能感兴趣的:(Java,Web)