tomcat 服务器乱码的问题简直了。。。乱码引起的问题各种各样,每个问题解决的关键点的不一样。这里记录下自己今天遇见的乱码
首先吐槽乱码引起的问题
-
访问中文名称的静态资源访问不到,简直要吐血了。解决办法是修改tomcat 配置。 具体是
在tomcat的安装目录 -->conf -->server.xml 里面找到Connector 默认是没有URIEncodeing的。 所以直接访问的时候,URL中要是存在中文就解析不到,这个解析拿着一堆乱码去根据名称找静态资源肯定是找不到的。 写"UTF-8"注意引号问题
-
启动时候控制台乱码问题。 这个问题也是,以前以为是工具的原因,但是从eclipse 换到idea 还是一样,二期两个工具打印的乱码错误都一样,所以大概率排除了工具的原因,就是tomcat 自己的原因了。 的确是的,ttomcat 启动会自己打印日志,可想而知它肯定有自己的日志打印配置。 修改日志打印的配置就行了。具体是
在tomcat-->conf-->logging.properties 里面。 如果开始时UTF-8 就把这一行删除或者改为GBK. 这里的说法是,删除就是使用默认的GBK. 控制台打印时使用系统级别的打印,系统是默认是支持GBK的。 所以tomcat升级之后使用了UTF-8 和控制台不一致导致乱码。 这个修改后重启tomcat 控制台的乱码解决了。
-
上传和下载的文件包含中文出现乱码。个人理解是,上传和下载中的文件名中的中文或者内容的中文都包含在上传的流中,和第二种的乱码不一样,第二种是URL 中。针对这种情况,解决的方法是:指定tomcat 在解析文件的时候用UTF-8去解析
图上是在ieda 中配置的-Dfile.encoding=UTF-8.
- 页面跳转是时候出现乱码。比如在URL 中传参的时候,要是 有中午,就容易出现乱码。这个时候,可以在发送请求的时候,对即将发送的url 进行编码,单独设置编码格式。 例如:
这样来强制给url 进行编码。然后再controller 里面解码:
其中hosoname就是中文参数。
以上就是我今天一天遇见的乱码问题。 记录分享下。