配置Tomcat字符集编码环境变量教程

酷明姑娘_3180

酷明姑娘_3180

2026-09-09

294人浏览

原创

tomcat乱码问题需同时配置server.xml的uriencoding="utf-8"和logging.properties的consolehandler.encoding=gbk;前者解决get参数乱码,后者修复控制台日志显示,二者缺一不可,且修改后必须重启tomcat。

配置tomcat字符集编码环境变量教程

Tomcat 启动后控制台乱码、中文请求参数变成问号或方块——根本原因不是没配 CATALINA_HOME,而是字符集配置分散在两个地方,且作用对象不同:一个管 HTTP 请求解码(URIEncoding),一个管日志输出编码(logging.properties)。只改一个,问题照旧。

server.xml 中的 URIEncoding="UTF-8" 是必须加的

这个配置决定 Tomcat 如何解析 URL 和 GET 请求里的中文参数。不加的话,request.getParameter("name") 拿到的就是乱码,哪怕页面本身显示正常。

  • 路径:conf/server.xml,找到类似这一行:
    <connector port="8080" protocol="HTTP/1.1" connectiontimeout="20000" redirectport="8443"></connector>
  • 在该标签末尾插入 URIEncoding="UTF-8",变成:
    <connector port="8080" protocol="HTTP/1.1" connectiontimeout="20000" redirectport="8443" uriencoding="UTF-8"></connector>
  • 注意:不是 URLCoding 或 URLEncoding,拼写错误会导致配置被忽略
  • 改完必须重启 Tomcat,热加载不生效

logging.properties 里要改 encoding=GBK(Windows)

Windows 控制台默认用 GBK 编码,而 Tomcat 日志组件默认用 UTF-8 输出,两者不匹配就满屏“???”。这不是 bug,是编码策略冲突。

Pictory
Pictory

一款面向内容营销的视频制作工具,可将文章、脚本和长视频等内容转化为短视频,并提供剪辑、字幕等 AI 辅助能力。

下载
  • 路径:conf/logging.properties
  • 找到这行:
    java.util.logging.ConsoleHandler.encoding = UTF-8
  • 改成:
    java.util.logging.ConsoleHandler.encoding = GBK
  • 如果还看到其他 .encoding = UTF-8(比如 java.util.logging.FileHandler.encoding),按需一并改掉
  • Linux/macOS 用户不用改这里,终端通常原生支持 UTF-8

别碰系统 locale 或 cmd 默认代码页

有人试图通过 chcp 65001 切换 CMD 到 UTF-8,或修改注册表改系统 locale——这会影响所有 Java 程序,且容易引发其他工具异常。Tomcat 的乱码是它自己组件的编码行为,应由它自己的配置解决,而不是动系统底层。

  • startup.bat 启动时不会继承 chcp 设置,改了也白改
  • 某些 JDK 版本(如 8u291+)对 chcp 65001 支持不稳定,反而导致 System.out 输出中断
  • 真正需要统一编码的地方只有两处:server.xml 和 logging.properties,其余都是干扰项

最常被忽略的是:改完 server.xml 后没重启,或者以为改了日志编码就能解决请求参数乱码——其实那是两个独立通道。一个管进来的数据,一个管打出来的字。漏掉任何一个,都会让你在调试时反复怀疑是不是代码写错了。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
如何配置Tomcat环境变量
如何配置Tomcat环境变量

配置Tomcat环境变量需要在系统中添加CATALINA_HOME变量,并将Tomcat的安装路径添加到PATH变量中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.26

645

5

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

284

5

怎么查看Tomcat源代码
怎么查看Tomcat源代码

查看Tomcat源代码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看源代码;4、理解Tomcat的工作原理;5、参与社区和贡献;6、注意事项;7、持续学习和更新;8、使用工具和插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

469

5

常见的tomcat漏洞有哪些
常见的tomcat漏洞有哪些

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

265

5

tomcat日志乱码怎么解决
tomcat日志乱码怎么解决

tomcat日志乱码的解决办法:1、修改tomcat的日志编码设置;2、检查ide的编码设置;3、检查操作系统的编码设置;4、使用过滤器处理日志;5、检查外部系统的编码设置;6、检查文件编码方式等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

328

5

weblogic和tomcat有哪些区别
weblogic和tomcat有哪些区别

weblogic和tomcat的区别:1、功能;2、性能;3、规模;4、价格;5、安全性;6、配置和管理;7、社区支持;8、集成能力;9、升级和更新;10、可靠性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

329

5

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

541

5

tomcat启动闪退怎么解决
tomcat启动闪退怎么解决

tomcat启动闪退的解决办法:1、检查java环境;2、检查环境变量配置;3、检查端口被占用;4、检查配置文件编码;5、检查启动时需要的配置文件;6、检查相关文件是否丢失;7、检查防火墙和杀毒软件设置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

302

5

有哪些常见的tomcat漏洞
有哪些常见的tomcat漏洞

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

2113

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Tomcat核心原理解析
Tomcat核心原理解析

共57课时 | 8.7万人学习

Apache Maven 官方安装指南
Apache Maven 官方安装指南

共0课时 | 0人学习

PHP基础-环境/变量/函数等
PHP基础-环境/变量/函数等

共57课时 | 18万人学习