Thymeleaf读取国际化文本时出现??xxxxxx_zh_CN??问题

Posted seve

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thymeleaf读取国际化文本时出现??xxxxxx_zh_CN??问题相关的知识,希望对你有一定的参考价值。

最近在学习thymeleaf模板引擎,在使用th:text读取国际化文本时读取不到值,如下:
技术图片

资源目录结构如下:
技术图片

index.html内容:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <p th:text="#{home.welcome}"></p>
</body>
</html>

home.properties内容:

home.welcome=你好,thymeleaf!

在度娘的帮助下,找到了问题的所在,spring.messages.basename默认值为messages,根据properties的位置修改为:

spring:
  messages:
    basename: msg/home

再次访问,值倒是能读取出来了,只是中文变成乱码了,结果如下,出现了编码问题:

技术图片

在确认index.html的编码和spring.messages.encoding的值都为utf-8后,突然想到会不会是home.properties本身编码不对呢,马上打开idea的编码设置界面,果然,properties文件默认的编码为GBK

技术图片

修改默认编码为UTF-8后,再修改home.properties中变成乱码的内容,再次访问问题解决了:

技术图片

以上是关于Thymeleaf读取国际化文本时出现??xxxxxx_zh_CN??问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring + Thymeleaf 时出现 java.lang.***Error

[Java中实现国际化] - 配合thymeleaf实现中英文自动切换(多语言)

关于thymeleaf的使用

尝试使用 Thymeleaf 加载 HTML 文件时出现 Spring Boot 404

丢弃用户时出现雪花问题

Thymeleaf中使用markdown时出现markdown加载不进来的问题?