當柳上原的風吹向天際的時候...

          真正的快樂來源于創造

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            368 Posts :: 1 Stories :: 201 Comments :: 0 Trackbacks
          以前,我們習慣用以下方式在XML中保存中文:
                  try {
                      OutputFormat format 
          = OutputFormat.createPrettyPrint();
                      format.setEncoding(
          "GBK");    // 指定XML編碼        
                      XMLWriter writer = new XMLWriter(new FileWriter("c:\\1.xml"
          ),format);
                      
                      Document document 
          = DocumentHelper.createDocument();
                      Element root 
          = document.addElement("users");

                      
          for(String user:userMap.keySet()){
                          Element userElm
          =root.addElement("user");
                          userElm.addElement(
          "name").addText(user);
                          userElm.addElement(
          "pswd").addText(userMap.get(user));
                      }
                     
                      writer.write(document);
                      writer.close();
                  } 
          catch (Exception e) {
                      System.out.println(
          "無法將注冊用戶信息存儲到文件中,原因為"+e.getMessage());
                      e.printStackTrace();
                  }

          在中文操作系統下,這樣的方案是可行的,但是在英文操作系統下中文就會變成問號。最好使用如下的修正方案:
                  try {
                      OutputStreamWriter osw 
          = new OutputStreamWriter(new FileOutputStream("c:\\1.xml"),"UTF-8");   
                      OutputFormat format 
          = OutputFormat.createPrettyPrint();
                      format.setEncoding(
          "UTF-8");    // 指定XML編碼       
                      XMLWriter writer = new
           XMLWriter(osw,format);
                      
                      Document document 
          = DocumentHelper.createDocument();
                      Element root 
          = document.addElement("users");

                      
          for(String user:userMap.keySet()){
                          Element userElm
          =root.addElement("user");
                          userElm.addElement(
          "name").addText(user);
                          userElm.addElement(
          "pswd").addText(userMap.get(user));
                      }
                     
                      writer.write(document);
                      writer.close();
                  } 
          catch (Exception e) {
                      System.out.println(
          "無法將注冊用戶信息存儲到文件中,原因為"+e.getMessage());
                      e.printStackTrace();
                  }

          兩端代碼的變化區域在粗體部分,請注意區分。
          posted on 2011-01-21 11:35 何楊 閱讀(775) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 娱乐| 息烽县| 涟源市| 重庆市| 隆德县| 五大连池市| 卢龙县| 鹿邑县| 秦皇岛市| 迁西县| 巴塘县| 峨眉山市| 依安县| 通辽市| 江口县| 遵化市| 灵石县| 广平县| 河津市| 乌鲁木齐县| 安西县| 淳化县| 铜梁县| 介休市| 蕉岭县| 平舆县| 万荣县| 大英县| 肥城市| 靖安县| 营口市| 卓尼县| 兴文县| 崇仁县| 赤峰市| 茌平县| 伊宁县| 道真| 上饶县| 陕西省| 华宁县|