Tomcat 部署 Springboot 应用时,不支持中文问题。

2016-12-06 19:13:34 +08:00
 hujianxin

大家好,今天使用 Tomcat 部署一个 Springboot 应用时出现了不支持中文问题,还请有经验的前辈帮忙

问题描述:

  1. 我的这个 Spring boot 程序使用 maven 打成 war 包放到了 Tomcat8 里面。
  2. 应用中,前端使用 ajax 获取后端的一个数据,这个数据包括中文字符串。如果包含中文字符串则报错。 报的错误不容易分析: Caused by: java.sql.SQLSyntaxErrorException: ORA-00911: invalid character ,但是我经过一步步推断,发现当后端发送数据包含中文字符串时就会报错。不出意外就是这个原因了。
  3. 我使用嵌入在 Springboot 里面的 tomcat 调试程序是没有问题的。
  4. 我使用嵌入在 springboot 里面的 tomcat ,将整个应用打成 jar 包,使用 java -jar 运行也是没有问题的。

请教各位前辈,如果有遇到过这个问题的,还请指点迷津,感谢。

2190 次点击
所在节点    程序员
9 条回复
echo1937
2016-12-06 19:20:51 +08:00
会不会是 tomcat 配置文件中没有设置字符集为 UTF-8 ?
hujianxin
2016-12-06 19:24:43 +08:00
@echo1937 查了半天也没查到结果,哭,请问在 tomcat 配置文件里设置呢,还是在应用方设置呢?
lonenol
2016-12-06 19:32:34 +08:00
server.xml connector 里边吧 URIEncoding 设置成 utf8
hujianxin
2016-12-06 20:00:03 +08:00
@echo1937 @lonenol 感谢回复,我已经分不清是 tomcat 的问题了,还是 hibernate oracle 的问题了,在问题补充里面我补充了描述,谢谢。
wanghaa
2016-12-07 09:08:52 +08:00
tomcat8 默認的就是 utf-8 ,肯定不是 tomcat 的問題
vjnjc
2016-12-07 11:10:39 +08:00
貌似 spring framework 里面有一个序列化的时候中文的问题,你用 spring boot 应该也用 springmvc 了吧
Miy4mori
2016-12-07 14:05:24 +08:00
是 get 请求的参数乱码吧,三楼说的对。
hujianxin
2016-12-07 17:10:23 +08:00
@wanghaa @vjnjc @Miy4mori 谢谢回复了,是 hibernate 的问题。
jack80342
2017-10-26 23:44:45 +08:00
最近翻译了 Spring Boot 最新的官方文档,欢迎👏Fork,https://www.gitbook.com/book/jack80342/spring-boot/details

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/325739

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX