我有一個網站應該以兩種語言顯示:Eng和Ru。 它是Tomcat6,Java6,Spring3,Tiles2。 網站確實以兩種語言顯示文字。但是,如果出現錯誤(並且我設置了自定義錯誤頁面),則俄語文本中的錯誤頁面顯示爲????????? (一堆?)西里爾文本不會顯示在錯誤頁面上
該文本在屬性文件中。認爲普通文本在一個文件中,錯誤消息在另一個文件中。我選中 - 兩個文件都使用相同的編碼進行保存。
在我的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>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
和錯誤頁面是在web.xml中定義爲:
<error-page>
<error-code>400</error-code>
<location>/Exception</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/Exception</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/Exception</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/Exception</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/Exception</location>
</error-page>
在對myApp-servlet.xml中
我確實有這個
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<!-- <property name="basename" value="classpath:text" /> -->
<property name="basenames">
<list>
<value>classpath:text</value>
<value>classpath:errors</value>
</list>
</property>
<property name="defaultEncoding" value="UTF-8" />
<property name="fileEncodings" value="UTF-8" />
</bean>
再次,整個網站確實顯示俄文文本。這是錯誤頁面沒有。
是否有需要爲錯誤頁面指定的獨立設置?或者我錯過了什麼?
當你得到的錯誤頁面,你可以右鍵點擊你的瀏覽器,並確認編碼是UTF-8? – 2012-03-24 22:05:52