架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11551|回复: 1

[资料] 解决Spring boot中文乱码问题

[复制链接]
发表于 2019-3-11 14:34:24 | 显示全部楼层 |阅读模式
spring boot控制器代码如下:

浏览器访问控制器以后,发现中文都显示成了??问号,字母和数字显示正常,通过网络请求,可以发现请求头如下:



QQ截图20190311141518.jpg

解决办法:

1:修改application.properties文件

2:创建国际化支持配置类(非正确配置,请看文章最后的配置

重启项目,重新访问控制器吗,发现中文字符显示正常了,如下:

QQ截图20190311142105.jpg

但是,响应头里面的Accept-Charset多了很多数据,如下:

Accept-Charset: adobe-standard-encoding, big5, big5-hkscs, bocu-1, cesu-8, cp1363, cp851, euc-jp, euc-kr, gb18030, gb2312, gb_2312-80, gbk, hp-roman8, hz-gb-2312, ibm-thai, ibm00858, ibm01140, ibm01141, ibm01142, ibm01143, ibm01144, ibm01145, ibm01146, ibm01147, ibm01148, ibm01149, ibm037, ibm1026, ibm1047, ibm273, ibm277, ibm278, ibm280, ibm284, ibm285, ibm290, ibm297, ibm420, ibm424, ibm437, ibm500, ibm775, ibm850, ibm852, ibm855, ibm857, ibm860, ibm861, ibm862, ibm863, ibm864, ibm865, ibm866, ibm868, ibm869, ibm870, ibm871, ibm918, iso-2022-cn, iso-2022-cn-ext, iso-2022-jp, iso-2022-jp-1, iso-2022-jp-2, iso-2022-kr, iso-8859-1, iso-8859-10, iso-8859-13, iso-8859-14, iso-8859-15, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-9, jis_x0201, jis_x0212-1990, koi8-r, koi8-u, ksc_5601, macintosh, scsu, shift_jis, tis-620, us-ascii, utf-16, utf-16be, utf-16le, utf-32, utf-32be, utf-32le, utf-7, utf-8, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, windows-31j, x-big5-hkscs-2001, x-big5-solaris, x-compound-text, x-ebcdic-xml-us, x-euc-jp-linux, x-euc-tw, x-euc-tw-2014, x-eucjp-open, x-gsm-03.38-2009, x-ibm-1047-s390, x-ibm-1125_p100-1997, x-ibm-1129_p100-1997, x-ibm-1130_p100-1997, x-ibm-1131_p100-1997, x-ibm-1132_p100-1998, x-ibm-1133_p100-1997, x-ibm-1137_p100-1999, x-ibm-1140-s390, x-ibm-1141-s390, x-ibm-1142-s390, x-ibm-1143-s390, x-ibm-1144-s390, x-ibm-1145-s390, x-ibm-1146-s390, x-ibm-1147-s390, x-ibm-1148-s390, x-ibm-1149-s390, x-ibm-1153-s390, x-ibm-1154_p100-1999, x-ibm-1155_p100-1999, x-ibm-1156_p100-1999, x-ibm-1157_p100-1999, x-ibm-1158_p100-1999, x-ibm-1160_p100-1999, x-ibm-1162_p100-1999, x-ibm-1164_p100-1999, x-ibm-1250_p100-1995, x-ibm-1251_p100-1995, x-ibm-1252_p100-2000, x-ibm-1253_p100-1995, x-ibm-1254_p100-1995, x-ibm-1255_p100-1995, x-ibm-1256_p110-1997, x-ibm-1257_p100-1995, x-ibm-1258_p100-1997, x-ibm-12712-s390, x-ibm-12712_p100-1998, x-ibm-1373_p100-2002, x-ibm-1386_p100-2001, x-ibm-16684_p110-2003, x-ibm-16804-s390, x-ibm-16804_x110-1999, x-ibm-25546, x-ibm-33722_p12a_p12a-2009_u2, x-ibm-37-s390, x-ibm-4517_p100-2005, x-ibm-4899_p100-1998, x-ibm-4909_p100-1999, x-ibm-4971_p100-1999, x-ibm-5123_p100-1999, x-ibm-5351_p100-1998, x-ibm-5352_p100-1998, x-ibm-5353_p100-1998, x-ibm-803_p100-1999, x-ibm-813_p100-1995, x-ibm-8482_p100-1999, x-ibm-901_p100-1999, x-ibm-902_p100-1999, x-ibm-9067_x100-2005, x-ibm-916_p100-1995, x-ibm1006, x-ibm1025, x-ibm1046, x-ibm1097, x-ibm1098, x-ibm1112, x-ibm1122, x-ibm1123, x-ibm1124, x-ibm1153, x-ibm1166, x-ibm1363, x-ibm1364, x-ibm1371, x-ibm1381, x-ibm1383, x-ibm1388, x-ibm1390, x-ibm1399, x-ibm300, x-ibm33722, x-ibm720, x-ibm737, x-ibm833, x-ibm834, x-ibm856, x-ibm867, x-ibm874, x-ibm875, x-ibm921, x-ibm922, x-ibm930, x-ibm933, x-ibm935, x-ibm937, x-ibm939, x-ibm942, x-ibm942c, x-ibm943, x-ibm943c, x-ibm948, x-ibm949, x-ibm949c, x-ibm950, x-ibm954, x-ibm964, x-ibm970, x-ibm971, x-imap-mailbox-name, x-iscii-be, x-iscii-gu, x-iscii-ka, x-iscii-ma, x-iscii-or, x-iscii-pa, x-iscii-ta, x-iscii-te, x-iscii91, x-iso-2022-cn-cns, x-iso-2022-cn-gb, x-iso-8859-11, x-jis0208, x-jis7, x-jis8, x-jisautodetect, x-johab, x-lmbcs-1, x-mac-centraleurroman, x-mac-cyrillic, x-mac-greek, x-mac-turkish, x-macarabic, x-maccentraleurope, x-maccroatian, x-maccyrillic, x-macdingbat, x-macgreek, x-machebrew, x-maciceland, x-macroman, x-macromania, x-macsymbol, x-macthai, x-macturkish, x-macukraine, x-ms932_0213, x-ms950-hkscs, x-ms950-hkscs-xp, x-mswin-936, x-pck, x-sjis_0213, x-unicodebig, x-utf-16le-bom, x-utf-32be-bom, x-utf-32le-bom, x-utf16_oppositeendian, x-utf16_platformendian, x-utf32_oppositeendian, x-utf32_platformendian, x-windows-50220, x-windows-50221, x-windows-874, x-windows-949, x-windows-950, x-windows-iso2022jp
查了一下源码,发现默认的 StringHttpMessageConverter 会加上 Accept-Charset 响应头,并带上所有的字符集!这个选项需要通过设置 writeAcceptCharset 属性来关闭。

https://github.com/spring-projec ... ssageConverter.java

因此需要修改刚才的配置类,修改完后,如下:

响应头里面不在有Accept-Charset配置了。

(完)




上一篇:Error creating bean with name 'stringRedisTemplate' defined in...
下一篇:基层看才能、中层看德行、高层看胸怀
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2019-4-1 13:12:49 | 显示全部楼层
虽然解决了输出中文乱码的问题,如果输出问json字符串,会出现以下错误:
No converter found for return value of type: class com.itsvse.ResponseModel

完整代码:



参考资料:

spring boot 解决后台返回 json 到No converter found for return...
https://www.itsvse.com/thread-7352-1-1.html
(出处: 架构师_程序员)

码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-3-29 20:36

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表