明明tomcat9的get请求方式是utf-8编码,获取的参数打印到控制台还是乱码。。。

问题如图

原因可能是控制台的编码和输出的编码格式不相同导致乱码
在这里插入图片描述

解决方法

在这里插入图片描述
不会乱码了
在这里插入图片描述

### Tomcat 11 控制台乱码解决方案 Tomcat 11 的控制台乱码问题通常由编码设置不一致引起,尤其是在 Windows 系统中,默认编码为 GBK,而 Tomcat 默认使用 UTF-8 编码。以下是针对该问题的具体解决方法: #### 方法一:修改 `logging.properties` 文件 在 Tomcat 配置文件目录中的 `conf/logging.properties` 中找到以下字段: ```properties java.util.logging.ConsoleHandler.encoding = ``` 将其修改为: ```properties java.util.logging.ConsoleHandler.encoding = GBK ``` 此操作可以确保日志输出的编码与系统的默认编码保持一致[^5]。 #### 方法二:通过 JVM 参数指定编码 在启动 Tomcat 的脚本(如 `startup.bat` 或 `catalina.sh`)中添加 JVM 参数 `-Dfile.encoding=UTF-8`。对于 Windows 平台,在 `CATALINA_OPTS` 变量中加入以下内容: ```batch set CATALINA_OPTS=%CATALINA_OPTS% -Dfile.encoding=UTF-8 ``` 这一步强制设置了 JVM 使用 UTF-8 编码处理输入/输出流,从而避免因编码不匹配引起的乱码问题[^3]。 #### 方法三:调整 JSP 页面编码 如果仅部分页面存在乱码,则需确认 JSP 文件头部是否有正确的字符集声明。例如: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> ``` 同时,在 `web.xml` 中增加全局过滤器以统一设定请求和响应的编码方式: ```xml <!-- 自定义初始化参数 --> <filter> <filter-name>SetCharacterEncodingFilter</filter-name> <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>SetCharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` #### 方法四:启用 URI 转义支持 当 URL 地址中含有中文时可能会引发乱码现象。可以在 `server.xml` 的 `<Connector>` 标签中添加属性 `URIEncoding="UTF-8"` 和 `useBodyEncodingForURI="true"` 来解决问题。例如: ```xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/> ``` 这样能够保证 GET 请求携带的参数不会因为编码差异而导致乱码[^4]。 完成以上任意一种或多种组合措施之后,请记得重新启动 Tomcat 服务使更改生效。 --- ### 注意事项 尽管上述方法适用于大多数场景,但在实际应用过程中仍需要注意不同版本间可能存在细微差别。因此建议仔细阅读官方文档获取最新指导信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值