我正在開發一個基於maven的web項目。在我的Web模塊中,我使用不同的語言特定資源包(德語,西班牙語,...)。 我所有的來源都是基於UTF-8的,而且一切都很好。 現在有必要acitvate 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>
....
從這一刻起我的戰爭文件包含錯誤的編碼資源包。例如德語變音不再正確顯示在我的Web應用程序中。 當我禁用資源過濾時,一切都很順利。
我發現的唯一的解決辦法是設置該屬性project.build.sourceEncoding以「ISO-8859-1」
<properties>
<project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
</properties>
但我不明白爲什麼這是必要的嗎?我的所有來源都是UTF-8,而且我的應用程序基於UTF-8? 如果我需要添加資源包(例如日文字符),會發生什麼情況?
我在Linux上使用Eclipse 4.2和Maven 3
你使用的是maven-war-plugin(和哪個版本)? – ben75
我沒有明確配置maven-war-plugin。但是當我添加它時編碼出錯了。 – Ralph