我想在消息資源包寫「阿拉伯語」(屬性)文件,但是當我試圖挽救它,我得到這個錯誤:「使用保存無法完成 某些字符不能映射」 ISOJava:如何在屬性文件中編寫「阿拉伯語」?
-85591-1「字符編碼,或者更改編碼或刪除字符...」
任何人都可以引導嗎?
我想寫:
global.username =اسمالمستخدم
我應該怎麼寫 「用戶名」 的屬性文件中的阿拉伯語?因此,公司國際工程..
BR SC
我想在消息資源包寫「阿拉伯語」(屬性)文件,但是當我試圖挽救它,我得到這個錯誤:「使用保存無法完成 某些字符不能映射」 ISOJava:如何在屬性文件中編寫「阿拉伯語」?
-85591-1「字符編碼,或者更改編碼或刪除字符...」
任何人都可以引導嗎?
我想寫:
global.username =اسمالمستخدم
我應該怎麼寫 「用戶名」 的屬性文件中的阿拉伯語?因此,公司國際工程..
BR SC
http://sourceforge.net/projects/eclipse-rbe/
可以使用上述插件的Eclipse IDE,使Unicode轉換爲您服務。
在類參考的 「屬性」
The load(Reader)/store(Writer, String) methods load and store properties from and to a character based stream in a simple line-oriented format specified below. The load(InputStream)/store(OutputStream, String) methods work the same way as the load(Reader)/store(Writer, String) pair, except the input/output stream is encoded in ISO 8859-1 character encoding. Characters that cannot be directly represented in this encoding can be written using Unicode escapes ; only a single 'u' character is allowed in an escape sequence. The native2ascii tool can be used to convert property files to and from other character encodings.
基於屬性的資源包必須在ISO-8859-1編碼使用默認加載機制,但是我已經成功地使用這些代碼以允許屬性文件中UTF-8編碼:
private static class ResourceControl extends ResourceBundle.Control {
@Override
public ResourceBundle newBundle(String baseName, Locale locale,
String format, ClassLoader loader, boolean reload)
throws IllegalAccessException, InstantiationException,
IOException {
String bundlename = toBundleName(baseName, locale);
String resName = toResourceName(bundlename, "properties");
InputStream stream = loader.getResourceAsStream(resName);
return new PropertyResourceBundle(new InputStreamReader(stream,
"UTF-8"));
}
}
那麼當然你必須改變文件本身爲UTF-8編碼在你的IDE,並且可以使用它像這樣:
ResourceBundle bundle = ResourceBundle.getBundle(
"package.Bundle", new ResourceControl());
這主要是一個編輯器配置問題。如果您在Windows中工作,則可以在支持UTF-8的編輯器中編輯文本。如果您將文件保存爲UTF-8,則記事本或Eclipse內置編輯器應該綽綽有餘。在Linux中,我成功地使用了gedit和emacs。在記事本中,您可以通過點擊「另存爲」按鈕並選擇「UTF-8」編碼來完成此操作。其他編輯應該有類似的功能。有些編輯可能需要更改字體才能正確顯示字母,但似乎沒有這個問題。
話雖如此,在爲阿拉伯語執行i18n時還有其他步驟需要考慮。您可以在下面找到一些有用的鏈接。確保在使用它之前在屬性文件上使用native2ascii,否則它可能無法工作。我花了很多時間,直到我明白了這一點。
new String(ret.getBytes("ISO-8859-1"), "UTF-8");
爲我工作。 保存在ISO-8859-1 Encoding中的屬性文件。
謝謝。這個插件會與IBM RAD合作嗎?我可以在它裏面寫下並保存「阿拉伯語」...... BR SC – SmoothCriminel 2011-01-10 20:42:14