Grails не кодирует в UTF-8 после публикации тела с помощью contentType application / json

1

В настоящее время я работаю в приложении grails, которое использует вызовы отдыха для доступа к другому приложению с использованием сообщений JSON.

Когда я пытаюсь отправить форму с символами умляутов (üöä), кодировка тела для сообщения не является UTF-8. Из-за этого приложение REST бросает исключение Json parse.

Это призыв grails к приложению REST.

withRest(uri: "${url}/service/update") {
    def response = post(body: javaClassA, requestContentType: ContentType.JSON)
    return response.data
}

Так как приложения grails формируют поля из javaClassA, этот снайпер был взят из журналов grails (вы можете видеть, что символы умляута не кодируются в UTF-8)

DEBUG http.wire - >> "{" content ":" [0xfc] [0xf6] [0xe4] ",...}"

И следующее исключение в приложении REST.

org.codehaus.jackson.JsonParseException: недопустимый стартовый байт UTF-8 0xfc

Я сделал все конфигурации, необходимые для установки кодировки в UTF-8 в grails, следуя следующим ссылкам.

http://www.oodlestechnologies.com/blogs/Configuring-Grails-App-for-UTF8-Character-Encoding

Как заставить UTF-8 работать в Java Webapps?

Спецификации системы: приложение grails (версия 2.3.4), emebedded tomcat (версия 7.0.47), Java 1.7.0_25, maven 3.1.1, SO Windows 7.

Также кодировка браузера и локальная кодировка файлов выглядят oka. А также JVM использует -Dfile.encoding = UTF8

У меня кончились идеи, почему это может произойти.

Помощь более чем приветствуется.

Thnks.

Теги:
utf-8
encoding
grails

1 ответ

1

Решение:

ParserRegistry.setDefaultCharset("UTF-8");

Добавьте предыдущую строку в BootStrap.groovy сразу после строки

def init = { servletContext ->

Ещё вопросы

Сообщество Overcoder
Наверх
Меню