Не отображать китайские иероглифы весной MVC - PullRequest
2 голосов
/ 05 марта 2012

Я пытаюсь отобразить символы скинов, но их отображение ??????????.В моем весеннем сервлете у меня есть

 <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="classpath:messages"/>
    <property name="defaultEncoding" value="UTF-8"/>
</bean>

, а в моем massages.property я добавил несколько символов слитков, подобных этому: 這 對 中國 的 考驗

Первая строка моего файла .jsp

<%@ page pageEncoding="UTF-8" %>

Если я закодирую подбородки в формате ascii, то он работает нормально.но я не хочу этого делатьЕсть ли что-то, чего мне не хватает.

Пожалуйста, помогите.

Ответы [ 2 ]

4 голосов
/ 05 марта 2012

Согласно их документации , файлы свойств по умолчанию считываются с использованием кодировки ISO-8859-1.Вам нужно будет использовать экранированные символы Юникода, как в \uXXXX для каждого символа за пределами поддерживаемого диапазона ISO-8859-1.JDK предлагает инструмент native2ascii для этого в папке /bin.Вместо этого следует использовать преобразованный файл свойств.

Например (в командной консоли)

native2ascii -encoding UTF-8 some.properties.utf8 some.properties

Где some.properties.utf8 - это файл свойств, который вы сохранили в UTF-8 и some.propertiesэто преобразованный файл свойств, который вы должны вместо этого использовать в своем веб-приложении.

some.key = 這對中國的考驗

станет

some.key = \u9019\u5c0d\u4e2d\u570b\u7684\u8003\u9a57

Большинство IDE, таких как Eclipse, IntelliJ ивозможно, Netbeans (не уверен, поскольку я никогда не использовал его) автоматически сделает это при использовании встроенного редактора файлов свойств.

0 голосов
/ 05 марта 2012

Можете ли вы попробовать изменить кодировку на UTF-16 {В файле свойств и в файле Spring Bean}

Несколько дополнительных слов: Китайские символы занимают два байта, поэтому на самом деле должно быть странно, как они могут быть представлены в формате UTF-8 (который в идеале должен читать 8 бит за раз - мое предположение) В любом случае факт, что мы можем изобразить китайский иероглиф, может быть представлен в формате UTF-8, каким-то образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...