2017-09-20 61 views
0

我有一個討厭的問題,我的Java註釋:Java註解的編碼

@Pattern(regexp = "(...)", message = "(...) Tekst in Polish (...)") 
    private String ip; 

這一點與使用BindingResult和Thymeleaf我的觀點:

<p th:if="${#fields.hasErrors('ip')}" class="error" th:errors="*{ip}"></p> 

然而,儘管我整個頁面使用UTF-8並且文本顯示正確,註釋編碼不正確。我無法在本地機器上重現它,它只發生在我客戶端的服務器上。在兩臺服務器上,file.encoding等於UTF-8。 Thymeleaf配置被設置爲使用UTF-8爲好,彈簧被配置爲使用UTF-8太:

<filter> 
    <filter-name>encodingFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
    <param-name>encoding</param-name> 
    <param-value>UTF-8</param-value> 
    </init-param> 
</filter> 

我怎樣才能解決這個問題?感謝所有回覆。

解決方案:我將解決方案移至下面的另一篇文章。

+0

您的解決方案值得歡迎,但最好將其作爲答案提交;這樣其他人可以很容易地看到問題有一個解決方案。 – holmis83

+0

@ holmis83,謝謝,我在下面提供了答案。 – gczarnocki

回答

0

解決方案:這個奇怪的行爲是由Gradle造成的,它以不同的編碼構建我的WAR(在我的情況下:與UTF-8不同)。我添加了:org.gradle.jvmargs =' - Dfile.encoding = UTF-8'到我的gradle.properties文件(位於與build.gradle - 項目根目錄相同的路徑)。另一種解決方案是增加:

tasks.withType(JavaCompile) { 
    options.encoding = 'UTF-8' 
} 

to build.gradle。