java – . Messages in the properties file do not display UTF-8 characters

As the title indicates, I can only add that if I enter it manually in the HTML file ąę It doesn't matter

View parser:

<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. In XML:

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

HTML input example:

<h2><p th:text="#{homepage.greeting}">Welcome</p></h2>

In the tag of the HTML file:

<Meta charset="UTF-8"/>

In IntelliJ idea, I set the project code to UTF-8, and the default code is the attribute file of UTF-8

I really don't know what the problem is When I change locale to PL, this is the output:

Sorry, I haven't posted the picture yet Any help would be appreciated

On the web Try the filter in XML and still have no luck

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

Solution

OK, I figured it out. This is a deal:

I have the following code:

<bean id="messageSource"
      class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="messages" />
</bean>

Option 1: just add another attribute:

<property name="defaultEncoding" value="UTF-8"/>

Option 2: change to:

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

If you change it to reloadable, remember to also change the attribute value from "messages" to "classpath: messages" For some reason, if I don't change it, it can't find the mail package

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>