Tomcat 8 编码错误

Posted

技术标签:

【中文标题】Tomcat 8 编码错误【英文标题】:Bad encoding with Tomcat 8 【发布时间】:2016-12-29 23:02:04 【问题描述】:

我有一个从 mysql 获取数据的 Tomcat 8。 MySQL 中的行编码良好(如俄语中的文本)。如果我调试服务器,则所选行的编码良好。但是,返回的 JSON 字符不正确。 我检查了我的server.xml,我有:

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

请注意,我在其中有 URIEncoding="UTF-8"

我还能做什么?

【问题讨论】:

您是否为编码配置了任何 servlet 过滤器?考虑使用org.springframework.web.filter.CharacterEncodingFilter 检查这个:***.com/questions/13504732/… 添加过滤器有帮助!谢谢! 【参考方案1】:

据我所知,URI 编码仅适用于 URI;它不会影响您发回的任何内容的编码。您应该设置正确的响应标头,例如“Content-type: application/json; charset=utf-8”。

这是我正在开发的 Spring Boot 应用程序的 sn-p,它是针对请求的,但它可能会让您了解您需要什么:

private RestTemplate rest = new TestRestTemplate()  getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8"))); ;
private HttpHeaders requestHeaders = new HttpHeaders()  setContentType(MediaType.APPLICATION_JSON); ;

如果你能展示你的代码,也许我们可以更好地帮助你。

【讨论】:

我不明白,如何使用getMessageConverters?仅使用 requestHeaders 无济于事。如何设置正确的响应标头?而且我的代码非常简单。直到返回声明一切都很好。

以上是关于Tomcat 8 编码错误的主要内容,如果未能解决你的问题,请参考以下文章

解决各种tomcat中文乱码问题

Tomcat的字符编码问题

设置tomcat的字符编码

微信支付回调签名失败Tomcat编码问题解决

Tomcat相关

TomCat 中的 JSP 文件编码