#grails #character-encoding #grails-4
Вопрос:
После обновления существующего приложения с grails 4.0.3 до 4.0.11 (не выполнял промежуточных обновлений, поэтому проблема может быть где-то там) мои gsp, содержащие необработанный HTML, теперь закодированы (это означает, что они отображают текст, подобный <p>Hello</p>
). У кого-нибудь еще есть эта проблема? Было ли изменение кодировки, которое пропустило документацию (или которое я пропустил)?
У меня есть свои кодировки, установленные на:
grails {
// other stuff removed for clarity here
converters.encoding = "UTF-8"
views {
"default" {
codec = "none"
}
gsp {
encoding = "UTF-8"
htmlcodec = "xml"
codecs {
expression = "none"
scriptlets = "none"
taglib = "none"
staticparts = "none"
}
}
}
}
Другая информация, которая может помочь:
- Это происходит только при запуске в виде jar; с
run-app
кодировкой соблюдается как обычно
Комментарии:
1. Не могли бы вы привести пример PoC, общедоступного проекта, пожалуйста?
2. «Это происходит только при запуске в виде jar; при запуске кодировка приложения соблюдается как обычно» — Если вы подадите сообщение о проблеме по адресу github.com/grails/grails-gsp/issues и ссылка на образец проекта, который мы будем рады рассмотреть. Спасибо за отзыв!
3. «Было ли изменение кодировки, которое пропустило документацию (или которое я пропустил)?» — Я думаю, что ответ «нет», но даже если бы оно было, все равно существует проблема, потому
run-app
что ведет себя иначе, чем.jar
.4. Спасибо всем. Я сужаю круг вопросов и либо подам жалобу, либо публично признаю свою собственную глупую ошибку… скоро мы увидим, в какую сторону это пойдет!
Ответ №1:
Ошибка подачи граалей, чтобы сообщить об этом; минимальный воспроизводимый пример доступен здесь: https://github.com/danduke/encoding-test
Отчет о проблеме здесь: https://github.com/grails/grails-core/issues/12019
Комментарии:
1. Изменить: После прочтения описаний проблем, связанных ниже, это не было исправлено, но было предусмотрено обходное решение из-за проблемы, возникшей в результате изменений в springboot. Возможно, аналогичное решение для загрузчика классов? Эта проблема (хотя и не связанная с кодированием) была исправлена в grails 4.0.4 и устраняла различия в поведении между
run-app
war
версиями приложения и версиями. Возможно, это непреднамеренно вызвало проблему с кодированием, описанную здесь, или, по крайней мере, могло быть использовано разработчиками для отслеживания проблемы . github.com/grails/grails-core/issues/115452. Чем больше я читаю о проблеме, на которую я ссылался выше, тем меньше я уверен, что это вообще связано, оставляя комментарий на всякий случай.