gpt4 book ai didi

maven - 激活资源过滤后编码错误

转载 作者:行者123 更新时间:2023-12-04 07:40:31 24 4
gpt4 key购买 nike

我正在开发一个基于 Maven 的 Web 项目。在我的网络模块中,我使用了不同语言的特定资源包(德语、西类牙……)。
我所有的资源都是基于 UTF-8 的,一切都很好。
现在有必要激活 maven 资源过滤以根据不同的 maven 配置文件替换一些配置。

我的 pom.xml:

.....
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
.....

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
....

从这一刻起,我的 war 文件包含编码错误的资源包。例如,德语变音符号不再正确显示在我的 Web 应用程序中。
当我禁用资源过滤时,一切都恢复了。

我找到的唯一解决方案是将属性 project.build.sourceEncoding 设置为“ISO-8859-1”
<properties>
<project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
</properties>

但我不明白为什么这是必要的?我所有的来源都是 UTF-8,而且我的应用程序也是基于 UTF-8 的?
如果我需要添加一个资源包,例如日文字符,会发生什么?

我正在使用 Eclipse 4.2 和 Maven 3 在 linux 上开发

最佳答案

您确定您的资源包 (.properties) 正在使用 UTF-8 ?
java.util.Properties假设 ISO-8859-1资源包编码见http://docs.oracle.com/javase/6/docs/api/java/util/Properties.html#load(java.io.Reader) ,并且我认为 Eclipse(以及 IntelliJ IDEA)尊重这些文件(.properties)的这种默认编码。

因此,请使用文本编辑器检查项目源代码树中这些文件的当前编码,在 Windows 中记事本 2 可以帮助你。

然后配置maven-resources-plugin就像这里指出的 Configure encoding for different filetypes in maven?

关于maven - 激活资源过滤后编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14327003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com