Я работаю над приложением I18N, основанным на Struts 1, и я хотел бы задать вопрос, как хранить специальные символы и алфавиты (Mandarin & Polish) в исходном виде в файле свойств иправильно отобразить его на JSP?
Возможное решение
И все же единственное решение, которое я нашел, это установить стиль кодирования на ISO 8859-1 по умолчанию для файла свойств (если содержимое закодировано, но для формата файла свойств задано значение UTF-8, оно также будет работать нормально) и установите charset
на UTF-8 в первой строке JSP, которая отображает содержимое.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="ISO 8859-1"%>
Пример содержания мандарина здесь кодировка UTF-8 : -
К вашему сведению, хотя все символы Мандарина закодированы, я все равно могу прочитать их значение, наведя указатель мыши на закодированное содержимое.Итак, вы видите, что все символы мандарина в 1-й строке кодируются в формате \u****
для правильного отображения в JSP.Однако, если я сделаю это в качестве 2-й строки, в которой содержимое хранится в исходном виде, символы не могут быть правильно отображены в JSP:
Что я хочу здесь - это хранить содержимое в удобочитаемой форме (оригинальная форма) в файле свойств, в то же время его можно правильно прочитать на JSP.
Повтор
- По сути, ISO 8859-1 кодирует все символы мандарина, чтобы его можно было правильно отображать с помощью формата кодирования
charset
UTF-8 JSP. - Файл свойств, отформатированный в кодировке UTF-8, может хранить символы мандарина в исходном виде,но не может правильно отобразить его в JSP каким-либо образом.
- Точно такая же проблема при работе с польским языком (латинский символ kreska не может быть отображен, если не закодирован)
ЧтоЯ пытался
- Если Мандарин в файле свойств кодируется , прежде чем изменить кодировку с ISO 8859-1 на UTF-8 , но установить кодировку файла на UTF-8 Мандарин вставленне будетпотом кодировать
- Продолжайте согласовывать кодировку JSP и файла свойств, чтобы найти лучший способ удовлетворить мои требования.Тем не менее, единственный результат, который я получаю, это: мандаринский символ не может быть прочитан JSP, если не закодирован и наоборот;Мандарин должен быть закодирован для правильного чтения JSP, но это будет не-читаемая форма.Оба несовместимы друг с другом.
Итак, что теперь?Есть ли способ сделать его совместимым или это единственный способ, с которым я мог бы работать?