Здравствуйте, я хочу спросить, что может быть источником проблемы с плохой кодировкой на странице.
Эта проблема очень специфична, потому что первая часть страницы имеет хорошее кодирование, а вторая часть сломана. Более того, он появляется только в некоторых сценариях, а не всегда.
Самое странное, что начинает появляться в середине одного сообщения, и после этого сообщения остальная страница имеет плохо закодированные символы.
Это сообщение включено в JSP с этой частью кода <fmt:message key="the.text.wchich.makes.problems"/>
Проблема не связана с JSP, потому что в середине сообщения появляется плохое кодирование.
Gratulujeme, toto číslo si môžete zarezervovať kliknutím na tlačidlo Pokračovať.
Но иногда он выводится как
Gratulujeme, toto číslo si môžete zarezervovať kliknut m na tlaÄidlo PokraÄovaÅ ¥.
или
Gratulujeme, toto číslo si mô ¾ete zarezervovaÅ ¥ kliknutÃm na tlaÄidlo PokraÄovaÅ ¥.
Так что это, вероятно, не ошибка плохо введенного текста в базе данных.
Мы используем Liferay 6.0, jsp, spring. Локализованные строки хранятся в базе данных Oracle 11g.
Итак, как возможно, что кодирование начнет разбиваться в середине страницы?
Это всего лишь одно предложение. Попробуйте установить языковой стандарт из объекта themeDisplay.
<fmt: setLocale value = "<% = themeDisplay.getLocale()>"/>
см., если это помогает fmt: message, чтобы идентифицировать правильный язык сообщения.
Примечание. Это предполагает, что у вас должен быть правильный языковой стандарт для пользователя или на уровне портала.
Возможно, вам потребуется указать кодировку в ваших JSP как:
<%@ page contentType="text/html; charset=UTF-8" %>
Вы должны иметь возможность добиться такого же результата с помощью CharacterEncodingFilter с параметром forceEncoding
и отображаться в *
path + INCLUDE
dispatch.