Spring Boot中的非英语字符串

时间:2019-03-19 17:51:06

标签: java spring-boot unicode utf-8

我试图在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

2 个答案:

答案 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