2009-05-27 4 views
1

Je suis en train d'afficher quelques charcaters népalaises de langauage dans mon ressort MVC webapp avec freemarker,afficher unicode avec Spring MVC

je l'ai fait tout comme je l'ai filtre le codage des caractères dans mon 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> 

Ma configuration freemarker est comme

<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> 

et dans le modèle i ont

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

défini je viens de voir des charcaters bizarres dans ma page. L'en-tête de réponse a indiqué le type de contenu correct "text/html; charset = UTF-8"

Vous ne savez pas quoi et où est le problème. J'ai même essayé de définir le type de contenu à partir du response.setContentType contrôleur ('text/html; charset = UTF-8");

gars Aide

+0

où est votre contenu? est votre source de données dans un format ou un type qui prend en charge les jeux de caractères étendus? –

+0

effectivement j'essaye de lire du message.properties fichier utilisant <@ spring.message code = 'error-input' /> tag –

+0

Êtes-vous certain que le fichier messages.properties est lui-même codé en UTF-8? Il y a une bonne chance (si vous êtes sur Windows), c'est en fait ISO 8859-1. Pourriez-vous donner un exemple d'un personnage que vous attendez de voir ainsi que ce que vous voyez réellement? –

Répondre

0

Etes-vous sûr que le contenu est correct Peut-être est-ce pas? UTF-8 valide.

les personnages sont « étranges » seulement au début? Ensuite, ils pourraient être de format Windows UTF-8 BOM (ordre des octets de marquage).

+0

Je suis sur mac, mais on dirait que c'est quelque chose à faire avec mon fichier d'éclipse et l'association de type de contenu. –

4

ok je résolu ce problème, je l'ai utilisé ReloadableResourceBundleMessageSource au lieu de ResourceBundleMessageSource avec la propriété defaultEncoding à UTF-8, donc devait également ajouter un chemin de classe pour la valeur de la propriété 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> 

il fonctionne maintenant ..

+0

A travaillé pour moi aussi, merci de poster votre solution. –

Questions connexes