我想從Windows的屬性文件中顯示字符(中文或其他語言)。java將字符串轉換爲UTF
假設我從服務器啓動時設置的System屬性讀取屬性server.location =上海的位置。
我試圖做到這一點
new String(locationStr.getBytes(System.getProperty("file.encoding")), "UTF-8");
這適用於Linux的,但不能讓它在Windows上運行。
以下是總結snipet,沒有的系統屬性是如何設置的
URL fileURL = new URL("file:filePathAndName");
InputStream iStream = fileURL.openStream() ;
Properties prop = new Properties();
prop.load(iStream);
//Enumerate over prop and set System.setProperty (key, value);
閱讀財產System.getProperty
這是所有屬性文件集中完成(「server.location」)語法,因此在讀取或設置特定編碼時修改任何內容都可能影響其他內容,因此不可取。
還嘗試編碼使用URLEncoder.encode
但沒有幫助。 我沒有看到任何特定的編碼集。 Java使用UTF-16,在Windows上,編碼是'Cp1252'。我在這裏錯過了什麼?
任何幫助,使這項工作或拋出一些光,表示讚賞。也試圖通過現有的問題,但答案並不直接適用於創建新問題。 謝謝
編輯: 無法將獲得的字符串轉換爲UTF-8。不知怎的,相信人們閱讀方式喬普提到的性質和檢索字符串正確
屬性文件應該在ISO_8859_1中進行編碼。你的文件實際上包含什麼? –
屬性文件中的「UTF-8」聽起來令人困惑? – Priyamal
嗨JB,不知道你的意思是「文件應該在ISO-8859-1編碼」我在Windows中發現默認編碼是Cp1252。屬性文件由多個屬性組成,每行一個。例如server.name = someName server.type = someType server.location = someLocation etc –
Nilesh