栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

有关tomcat项目中乱码的问题解决合集

Java 更新时间:发布时间: 百科书网 趣学号

导语:乱码问题产生的原因主要是字符编码的问题;
发送方要发送一串字符,首先必须用字符集给它编码变成0和1即二进制进行传输,接收方需要用同一个字符集进行解码(decode)方才能知道发送方发送的内容。如果双方所用的字符集不一致就会产生乱码。

有关tomcat服务乱码的问题解决合集
  • 控制台乱码
    • post请求乱码
    • get请求乱码
    • 响应乱码

控制台乱码

设置Tomcat中 conf下logging.properties中所有的UTF-8编码为GBK即可

原理----> 原因是windows中默认中文字符集为GBK,但是tomcat中日志输出为UTF-8,GBK对UTF-8显然是字符集不匹配;

post请求乱码

产生原因----->>>图解

解决方式—>
通过HttpServletRequest设置请求编码

/处理post请求乱码/
req.setCharacterEncoding(“UTF-8”);
那我可不可以指定字符编码为GBK呢?

原因在与这是项目本身运行环境字符集编码为UTF-8,
所以也会产生乱码(但至少不是?之类的符号了)

get请求乱码

在之前版本的tomcat中get方式提交的数据可能会遇到修改server.xml中uri编码格式的情况,但是这在tomcat9已经解决了该问题

             connectionTimeout="20000"

             redirectPort="8443" URIEncoding="utf-8"  />

另一种是需要手动进行编码解码,注意:

req.setCharacterEncoding(“UTF-8”); 这种方式只对post提交方式有效;
这一点在tomcat9之前的版本可以体现,因为版本较旧,就不在演示了

响应乱码

浏览器将数据发送给tomcat服务器,服务器解析,当解码的字符集匹配但是发送的时候指定的编码集与数据类型不一致也会产生乱码问题,比如发送图片(ASCII),响应时指定字符集为文本(GBK),

通过HttpServletResponse设置响应编码
手动编码解码-----
//以UTF-8编码处理数据
resp.setCharacterEncoding(“UTF-8”);
解析为文本,是html文件
resp.setContentType(“text/html”);或者设置tomat连接器的编码格式—
//设置响应头,以便浏览器知道以何种编码解析数据
resp.setContentType(“text/html;charset=UTF-8”);

总结------->>>>
当没有指定解码方式和响应的数据类型(包括响应的数据编码格式)—>>
指定解码方式和响应的数据类型(包括响应的数据编码格式)----->>>
手动编码解码
设定URL的编码格式

这里补充一点-------
还有一种比较费劲的方式-----

这种方式也会得到正常解析,那要浏览器干嘛?如果发送的是图片或者其他的内容岂不很麻烦?

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/281335.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号