[英]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.