簡體   English   中英

如何通過Vaadin Bean驗證使用UTF8屬性文件

[英]How to use a UTF8 properties file with Vaadin Bean Validation

我目前正在使用Vaadin和一個名為Vaadin Bean Validation的Java Bean驗證API 1.0(JSR-303)插件。 該API的實現是hibernate-validator。

我有一個使用UTF8作為字符集的自定義屬性文件。 但是通過這種機制,像“éèà”這樣的特殊字母總是顯示錯誤。

我怎樣才能解決這個問題?

屬性文件根據使用ISO-8859-1讀取的規范進行。

...輸入/輸出流以ISO 8859-1字符編碼進行編碼。 不能使用此編碼直接表示的字符可以使用Unicode轉義符編寫; 轉義序列中僅允許使用一個'u'字符。 native2ascii工具可用於在其他字符編碼之間來回轉換屬性文件。

因此,任何未在ISO-8859-1范圍內涵蓋的字符都需要在Unicode轉義序列 \\uXXXX 轉義 您可以使用JDK提供的native2ascii工具進行轉換。 您可以在JDK的/bin文件夾中找到它。

這是一個示例,假定foo_utf8.properties是您使用UTF-8保存的那個,而foo.properties是您要在應用程序中使用的那個:

native2ascii –encoding UTF-8 foo_utf8.properties foo.properties

如果使用的是Eclipse之類的IDE,則可以使用內置屬性文件編輯器,該編輯器應自動與.properties文件關聯。 如果使用此編輯器而不是純文本編輯器,則它將自動轉義ISO-8859-1范圍未涵蓋的字符。

屬性文件是轉義UTF-8字符。

例如:

foo.bar.max=Foo \u00E1 \u00E9 and \u00F6bar

將顯示為:

Foo á é and öbar

這是一個可以幫助您轉換字符的工具: http : //rishida.net/tools/conversion/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM