Кодировка символов в запросе POST JSON

Я отправляю запрос POST JSON в свое приложение.

POST /CharSetTest/Test HTTP/1.1
Host: localhost:8090
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: 1637b92b-5896-4765-63c5-d04ad73ea9f1

{
  "SampleRequest": {
    "FullName": "関連当"
  }
}

Мой потребитель CXF JAXRS определяется ниже.

@POST
@Produces("application/json; charset=UTF-8")
@Consumes("application/json; charset=UTF-8")
public Response testCharSet(@Encoded String jsonBody);

Но японский символ (関 連 当), который я отправил как запрос POST, не закодирован и приводит к некоторым нежелательным символам " é ¢ é å ½½º ",

Использование SoapUI приводит к "?????" персонажи.

Эти нежелательные символы отличаются от клиента к клиенту, откуда я нахожу запрос. Как я могу закодировать свой запрос POST?

Ответ 1

Установите тип содержимого:

"application/json;charset=UTF-8" 

при отправке запроса на отправку в приложении, которое вы используете. Вы можете найти "контент-тип" в заголовке URL-адреса этого приложения.

Ответ 2

Ни один из ответов здесь не работал для меня.

Мой тип контента уже был установлен на "application/json; charset = UTF-8", но настройка accept-encoding в моем заголовке вызвала ошибку:

Отключите настройку accept-encoding под заголовками:

enter image description here

Когда я деактивировал последнюю строчку выше, все работало отлично! Надеюсь, что это помогает кому-то.

Ответ 3

Попробуйте это

@RequestMapping(value = "/play", method = RequestMethod.POST, produces={"application/json; charset=UTF-8"})

Установите produces={"application/json; charset=UTF-8"}, как указано выше, на ваш @RequestMapping