2
我使用maven使用此配置编译我的项目:Maven的编译UTF-8属性文件
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<source>${java.version}</source>
<target>${java.version}</target>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
</plugins>
该项目应该是UTF-8,但是按照惯例,.properties文件应该是LATIN1(ISO 8859-1),Eclipse以这种方式对待它们(我知道我可以改变Eclipse的行为方式,但这不是重点)。我使用.properties文件进行国际化。
问题是,使用Eclipse部署到Tomcat,我可以很好地看到我的特殊字符,但是当通过maven编译时(例如通过Jenkins),我得到所有乱码字符,就像Maven翻译所有我的.properties到UTF-8,从而拧紧我所有的i18n消息。
解决此问题的正确方法是什么?感觉这应该是一个非常普遍的问题,但我还没有在网上找到有效的解决方案。
我假设你已经在你的pom文件中定义了某种过滤方式?没有整个POM文件很难看到发生了什么... – khmarbaise
我确实有一些过滤,你认为这可能是问题吗?将这些行添加到我的原始帖子中。 –
只需为包含ISO-LATIN1文件的资源目录创建补充条目并明确禁用过滤。比那些文件应该保留,因为它们是... – khmarbaise