正如标题所说,我只能补充一点,如果我在html文件中手动输入±,就可以了。
的ViewResolver:
<bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
<property name="prefix" value="/WEB-INF/templates/" />
<property name="suffix" value=".html" />
<property name="templateMode" value="HTML5" />
<property name="cacheable" value="false"/>
<property name="characterEncoding" value="UTF-8"/>
</bean>
<bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver" />
</bean>
<bean class="org.thymeleaf.spring3.view.ThymeleafViewResolver">
<property name="templateEngine" ref="templateEngine" />
<property name="characterEncoding" value="UTF-8"/>
<property name="order" value="1"/>
</bean>
的pom.xml:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
html输入示例:
<h2><p th:text="#{homepage.greeting}">Welcome</p></h2>
在html文件的标记内:
<meta charset="UTF-8"/>
在IntelliJ Idea中,我将项目编码设置为UTF-8,属性文件的默认编码为UTF-8
老实说,我不知道问题出在哪里。当我将语言环境更改为pl时,这是输出:
抱歉,我还不能发布图片。 任何帮助将不胜感激。
在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>
答案 0 :(得分:16)
好的,我明白了。这是合约:
我有以下代码:
<bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages" />
</bean>
选项1: 只需将其添加为另一个属性:
<property name="defaultEncoding" value="UTF-8"/>
选项2: 将其更改为:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:messages"/>
<property name="defaultEncoding" value="UTF-8"/>
</bean>
如果您将其更改为可重新加载,请记住还要更改&#34;消息&#34;的属性值。 to&#34; classpath:messages&#34;。出于某种原因,如果我没有改变它,它就无法找到消息包。
答案 1 :(得分:0)
使用ResourceBundleMessageSource对象时,需要设置默认编码,如下所示:
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource resource =
new ResourceBundleMessageSource();
resource.setBasename("messages");
resource.setDefaultEncoding("utf-8");
return resource;
}