Джерси REST WS - тело запроса UTF-8 - PullRequest
2 голосов
/ 03 мая 2011

У меня есть простые веб-службы REST в Джерси:

@POST
@Path("/label")
@Consumes(MediaType.TEXT_HTML)      
public Response setLabels(String requestBody) { 
    System.out.println(requestBody);
......
}

Запрос передает некоторый текст со "специальными" неанглийскими символами

 [{"За обекта"}]

В Firebug я вижу, что запрос прошел с правильнымСодержимое UTF-8 и кодировка

Content-Type    text/plain; charset=UTF-8

Хотя на выводе на сервере нет желаемой кодировки:

  [{"?? ??????"}]

Любая идея, что и что пошло не так?Как я могу захватить текст в правильной кодировке на стороне сервера?

1 Ответ

1 голос
/ 04 мая 2011

System.out является PrintStream.Он использует кодировку платформы по умолчанию, которая обычно не является UTF-8.Таким образом, вы получаете правильные данные, они просто портятся, когда вы печатаете их на консоль.

У меня была та же самая проблема несколько недель назад - сводила меня с ума, пока я не понял это.Хуже всего то, что у меня на самом деле была ошибка, связанная с кодировкой в ​​другой части кода.

...