One of the latest stupid problems I've encountered: Java *.properties files are always loaded in ISO-8859-1 encoding and there is no way to change that. But in our project we wanted to have them in UTF-8 so that non-Latin files could be human readable. We use JSTL "fmt" tag library which loads messages from *.properties files (and guess in which encoding).
The simple solution I've come up is build-time native2ascii conversion. This can be done using the native2ascii-maven-plugin. This example shows what to add to pom.xml (assuming that your *.properties files are in src/main/resources/l10n):
<build> ... <resources> <resource> <directory>src/main/resources</directory> <excludes> <!-- exclude resources handled by native2ascii-maven-plugin (otherwise they will be overwritten again) --> <exclude>l10n/*</exclude> </excludes> </resource> </resources> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>native2ascii-maven-plugin</artifactId> <executions> <execution> <goals> <goal>native2ascii</goal> </goals> <configuration> <src>src/main/resources</src> <includes>l10n/*</includes> <encoding>UTF8</encoding> </configuration> </execution> </executions> </plugin>
No comments:
Post a Comment