2009-05-27 2 views
1

Я пытаюсь показать некоторые непальские langauage charcaters в моей Spring MVC веб-приложение с FreeMarker,проблема отображения Юникода с использованием Spring MVC

я сделал все, как я есть фильтр кодировки символов в моей web.xml

<filter> 
     <filter-name>encodingFilter</filter-name> 
     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
     <init-param> 
      <param-name>encoding</param-name> 
      <param-value>UTF-8</param-value> 
     </init-param> 
     <init-param> 
      <param-name>forceEncoding</param-name> 
      <param-value>true</param-value> 
     </init-param> 
</filter> 

Моя конфигурация FreeMarker подобна

<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> 
     <property name="cache" value="true"/> 
     <property name="prefix" value=""/> 
     <property name="contentType" value="text/html; charset=UTF-8"/> 
     <property name="suffix" value=".ftl"/> 
     <property name="exposeSpringMacroHelpers" value="true"/> 
</bean> 

и в шаблоне у меня есть

<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 

Определенный я просто вижу некоторые странные символы на моей странице. Думал, что заголовок ответа имеет правильный тип контента «text/html; charset = UTF-8»

Не знаете, что и где проблема. Я даже пытался установить тип содержимого из контроллера response.setContentType ("текст/HTML, кодировка = UTF-8");

Помощь ребята

+0

где ваш контент из? является ли ваш источник данных в формате или типе, который поддерживает расширенные наборы символов? –

+0

на самом деле я пытаюсь читать из файла messages.properties с помощью <@ spring.message code = 'error-input' /> tag – 2009-05-27 18:50:53

+0

Вы уверены, что файл messages.properties сам кодируется UTF-8? Существует хороший шанс (если вы работаете в Windows), это на самом деле ISO 8859-1. Не могли бы вы привести пример персонажа, которого вы ожидаете увидеть, а также то, что вы на самом деле видите? –

ответ

0

Вы уверены, что содержание является правильным Возможно, это не так? действительны UTF-8.

являются «странные» символы только в самом начале? Тогда они могут быть Windows, отформатированные UTF-8 BOM (порядок байт маркировки).

+0

Я нахожусь на mac, но похоже, что это что-то делать с моим файлом eclipse и ассоциацией содержимого. – 2009-05-27 18:58:08

4

нормально я исправила эту проблему, я использовал ReloadableResourceBundleMessageSource вместо ResourceBundleMessageSource с параметром defaultEncoding для UTF-8, поэтому также пришлось добавить classpath для значения свойства basename.

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

он работает сейчас ..

+0

Работал для меня тоже, спасибо за размещение вашего решения. –

Смежные вопросы