记录修改tomcat编码格式

20171216备注,以下内容虽然可以修改控制台编码格式,但是会造成与系统编码不兼容,是个大坑..误入,想要程序不乱码,还是需要在编码的时候注意所有字节字符串互转的地方加上utf-8

修改tomcat窗口编码格式

上网找到设置默认值的方法

1 win键+R打开“运行”对话框,输入regedit打开注册表编辑器。

2 找到 [HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]

3 修改”CodePage”=dword:000003a8(或者将进制改为十进制,然后输入936就可以了)

936为GBK,95001为UTF-8

修改tomcat启动编码

在catalina.bat配置

set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8

修改请求解析编码

<Connector 中加上  URIEncoding="UTF-8" />
 
 




### Tomcat 中文乱码问题解决方案 #### 1. 修改 `server.xml` 文件以支持 UTF-8 编码 为了确保所有的 HTTP 请求都使用统一的编码格式,在 `conf/server.xml` 文件中找到 `<Connector>` 标签,并添加或修改 `URIEncoding="UTF-8"` 属性。这一步骤可以防止请求参数出现乱码情况[^2]。 ```xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> ``` #### 2. 设置 JSP 页面编码为 UTF-8 对于 JSP 页面来说,应该指定其使用的字符集为 UTF-8。可以在每页顶部加入如下声明来实现这一点: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> ``` 此外,还可以通过在 web 应用程序的 `web.xml` 配置文件里定义过滤器的方式自动设置所有响应的内容类型和字符集为 UTF-8: ```xml <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 以上措施能够有效避免由于不同组件间编码不匹配而导致的数据传输过程中产生的乱码现象。 #### 3. 更改控制台输出的日志编码至 GBK (针对 Windows 用户) 如果是在 Windows 平台上部署的应用,则可能还需要调整 Tomcat 的日志记录功能所采用的文字编码形式。具体做法是编辑位于 `conf/logging.properties` 文件内的相应行项,将其由原来的 ISO 或者其他编码切换成与本地操作系统相适应的形式——即 GBK 编码。例如: ```properties java.util.logging.ConsoleHandler.encoding = GBK ``` 完成上述更改之后记得保存文件并重启服务使新的设定生效[^4]。 #### 4. IDEA 开发环境中运行 Tomcat 时的特殊处理 当开发者习惯于利用集成开发环境(IDE),比如 IntelliJ IDEA 来管理项目以及启动应用服务器的时候,也需要留意 IDE 自身关于编码方面的选项配置。通常情况下,默认值已经足够满足日常需求;但如果遇到了特定场景下的异常状况,则建议检查项目的全局属性或是模块级别的设置,确认它们均指向了期望的目标编码标准[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值