我试图在Spring Boot中创建一个像这样的字符串:
model.setBody("Bạn đã nhận được một báo cáo mới");
但是当我使用
model.getBody().toString()
我收到了一个奇怪的字符串,如下所示:
B?n?ãnh?n ??? c m?tbáocáom?i
我在Java应用程序上进行了尝试,但效果很好。我在Google上做了一些研究以设置utf-8或更多,但仍然没有帮助。有人知道它为什么如此奇怪吗? P / s:我正在使用
spring_boot_version = 1.5.8.RELEASE
我正在使用gradle
答案 0 :(得分:0)
您需要在CharacterEncodingFilter
中添加Spring的web.xml
。您需要确保此过滤器是文件中的第一个过滤器。
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
答案 1 :(得分:0)
有多种方法可以设置应用程序的编码。
其中一种方法是在spring-boot应用程序的application.properties中的属性下面设置。
spring.http.encoding.charset=UTF-8 # the encoding of HTTP requests/responses
spring.http.encoding.enabled=true # enable http encoding support
spring.http.encoding.force=true # force the configured encoding
其他方式请参见this thread