我正在开发一个主要建立在Java8、Spring4.1.2、SpringIntegration4.1.0、SpringSecurity3.1.2、myBatis 3.2.3和Tomcat8.5上的项目。在项目中公开了一个REST GET方法,它返回一个具有特殊字符é的JSON。
最近,我一直试图将整个项目升级到Spring4.3.16、SpringIntegration4.3.15和SpringSecurity4.2.4。在这次迁移之后,这个特殊的角色出现了扭曲。对此服务的邮递员请求返回\ufffd代替字符和标题Content-Type →application/json。
在Spring升级之前,通过Postman获得对函数的请求,用于返回正确的字符和头Content-Type →application/json;charset=UTF-8
日志中打印出相同的JSON,在Notepad++中以Notepad++形式显示特殊字符,在记事本中以é形式显示。
我试过以下几点-
jackson-databind从2.4.1更新到2.8.11.2 -没有工作int-http:request-mapping consumes="application/json" produces="application/json;charset=UTF-8"中设置int-http:inbound-gateway -不起作用setCharacterEncodingFilter‘sweb.xml中启用UTF-8 -不起作用在从Spring4.1.2迁移到4.3.16时,是否需要更改正确的字符编码?
谢谢!
发布于 2018-10-26 14:47:19
我能够通过引用Content-Type on http:inbound-gateway response has charset=iso-8859-1 instead of utf-8来解决这个问题
我添加了一个标题-充实她的内容类型为UTF-8。
<int:header-enricher>
<int:header name="Content-Length" expression="payload.length()"/>
<int:header name="Content-Type" value="application/json;charset=UTF-8"/>
</int:header-enricher>有趣的是,这在Spring升级之前并不是必需的。然而,它现在起作用了。
https://stackoverflow.com/questions/52995924
复制相似问题