私はMavenベースのWebプロジェクトを開発しています。私の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に基づいていますか?たとえば日本語の文字を含むリソースバンドルを追加する必要がある場合はどうなりますか?
Eclipse4.2とMaven3を使用してLinuxで開発しています