Неанглийская строка в Spring boot

Я пытаюсь создать такую ​​​​строку в 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?t báo cáo m?i

Я попробовал это в приложении Java, и оно работало нормально. Я провел некоторое исследование в Google о том, как установить utf-8 и многое другое, но это все равно не помогло. Кто-нибудь знает, почему он так странно себя ведет? P/S: я использую

spring_boot_version=1.5.8.RELEASE

я использую градиент

Вы должны установить кодировку.

Samuel Philipp 19.03.2019 18:53
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
290
2

Ответы 2

Вам нужно CharacterEncodingFilter Весны в вашем 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> 

Есть несколько способов установить кодировку для приложения.

Один из способов задается ниже свойств в application.properties в приложении spring-boot.

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

Другие способы см. в разделе эта тема.

Другие вопросы по теме