tomcat乱码总结(启动日志乱码、运行控制台输出乱码、URL乱码)

启动日志乱码

可以看我写的这篇博文

运行控制台输出乱码

tomcat乱码总结(启动日志乱码、运行控制台输出乱码、URL乱码)_第1张图片
注意: 在idea VM Option中设置过-Dfile.encoding=UTF-8
也依然需要在tomcat Server 中设置。因为运行项目的服务器所在虚拟机已经从idea 的JVM 变成了tomcat的JVM

URL中文乱码

参考:Tomcat9的变化和 为什么需要两次解码/编码
总结如下:
解决中文乱码问题有两种方式
1)在server.xml文件中添加

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf-8"/>

但是tomcat9 之后 ,tomcat 对于URL更加严格。由于tomcat发现URL有中文,则直接用问号代替,所以导致上面的设置无效。
2)
另一种方式就是,中文先编码再拼接到URL上。前端读取前则先解码再使用。这种方式需要注意的是,Tomcat 会自动编码一次,前端需要解码两次。

类似的,如果是前端向后台发送中文,也需要编码两次。tomcat后台会自动解码一次,后台则只需再解码一次即可。

你可能感兴趣的:(web,idea)