方法1 properties文件的格式一般為:
ROOT=http://localhost:8080/BNCAR2/ ROOTPATH=E:/ws2/BNCAR2/rel/ MALL_PARTS_PATH=mall.jsp?rowid=0&typeFlag=0&pid=32 MALL_AFFIX_PATH=mall.jsp?rowid=0&typeFlag=1&pid=74 MALL_TYPE_TAG1=保養套裝 MALL_TYPE_TAG2=系統養護 MALL_TYPE_TAG3=輪胎輪轂 NETWORK_TAG1=上海 NETWORK_TAG2=江蘇
以上為保存UTF-8格式,使用UltraEdit編輯,避免出現空格導致轉碼錯誤。(在文本編輯器中有時候空格看不出來,這就是看似中文對了,實際轉碼會存在非法字符的原因了~!!)
java中獲取配件文件信息,PropUtil.java
static Properties config = null; static String filename = PropUtil.class.getClassLoader().getResource("bn-context.properties").getFile(); static Logger log = Logger.getLogger(PropUtil.class); public PropUtil() { super(); config = getPropUtil(); } public static Properties getPropUtil() { config = new Properties(); InputStream is = null; try { //ln("初始化config對象!"); is = PropUtil.class.getClassLoader().getResourceAsStream( "bn-context-test.properties"); config.load(is); } catch (IOException e) { e.printStackTrace(); } finally {// 關閉資源 if (is != null) { try { is.close(); } catch (IOException e) { } } } return config; } public static String getParameter(String key) { if(config == null){ config = getPropUtil(); } String value = config.getProperty(key); // 編碼轉換,從ISO8859-1轉向指定編碼 try { if(value != null){ value = new String(value.getBytes("ISO8859-1"), "UTF-8"); } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return value; } public static void setParameter(String key,String value) { if(config == null){ config = getPropUtil(); } config.setProperty(key, value); }
方法2 用UltraEdit編輯器,編寫中文配置文件bn-context-test.properties,在保存后再點擊另存為,文件名為prop.properties,編碼選擇unicode ascii就可以了。
ROOT=http://localhost:8080/BNCAR2/ ROOTPATH=E:/ws2/BNCAR2/rel/ MALL_PARTS_PATH=mall.jsp?rowid=0&typeFlag=0&pid=32 MALL_AFFIX_PATH=mall.jsp?rowid=0&typeFlag=1&pid=74 MALL_TYPE_TAG1=\u4FDD\u517B\u5957\u88C5 MALL_TYPE_TAG2=\u7CFB\u7EDF\u517B\u62A4 MALL_TYPE_TAG3=\u8F6E\u80CE\u8F6E\u6BC2 NETWORK_TAG1=\u4E0A\u6D77 NETWORK_TAG2=\u6C5F\u82CF
如果這種情況,以上java代碼就不需要轉碼那部分代碼,注釋掉。
// 編碼轉換,從ISO8859-1轉向指定編碼 // try { // if(value != null){ // value = new String(value.getBytes("ISO8859-1"), "UTF-8"); // } // } catch (UnsupportedEncodingException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // }
