RESTeasy вернуть другую кодировку символов JSON (P) - PullRequest
2 голосов
/ 01 ноября 2011

Кто-нибудь знает способ включить выбор набора ответных символов клиентом для RESTeasy? Я работаю с 1.2.1GA. Мои ответы возвращают UTF-8, хотя я не уверен, почему и где это определено, потому что кодировка моей тестовой системы по умолчанию в java - CP1252-что-то, а аннотации выглядели так:

@GET
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )

Я пытался изменить эти MediaTypes безуспешно.

// Add another media type
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, "application/json;charset=iso-8859-1" } )

// Try to always return latin-1 JSON. TESTING ONLY!!!
@Produces( { MediaType.APPLICATION_JSON + ";charset=iso-8859-1", MediaType.APPLICATION_XML } )

Я запрашиваю с REST Client для Firefox установку кодировки в заголовках accept и accept-encoding , и все же я всегда получаю UTF-8 JSON. Но клиент, которому нужны данные, будет включен в веб-страницу латиноамериканца-1, что вполне ... вы знаете. Я не могу повлиять на это. Я хотел бы избежать перекодирования всего этого вручную в JavaScript. Кроме того, решение на стороне сервера кажется мне более надежным.

Я также попробовал некоторые другие вещи, которые я никогда не ожидал, например, изменение кодировки символов ответа с помощью фильтра сервлетов и так далее. (Необходимость - мать изобретения. ^^)

Google / Интернет не могут многое предложить по этой теме, поэтому после нескольких часов попыток я пришел сюда и надеюсь, что кто-нибудь скажет мне, как это должно работать или если это вообще возможно.

Так долго, с уважением

С.Франка

1 Ответ

3 голосов
/ 16 января 2012

Динамическое перекодирование возвращенного ответа пока не поддерживается: https://issues.jboss.org/browse/RESTEASY-465

Кажется, что при использовании типов возврата JAX-B поддержка ограничена: https://issues.jboss.org/browse/RESTEASY-269

...