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

          真正的快樂來源于創造

            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 何楊 閱讀(773) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 盘山县| 永春县| 翁源县| 营口市| 玉田县| 柯坪县| 磴口县| 明溪县| 巫山县| 绿春县| 买车| 沧源| 五家渠市| 广昌县| 商城县| 云阳县| 唐河县| 商水县| 永吉县| 曲麻莱县| 伽师县| 高安市| 扎兰屯市| 天水市| 陆丰市| 盐城市| 工布江达县| 武乡县| 晴隆县| 庄河市| 宿州市| 武安市| 临泉县| 双牌县| 祥云县| 咸阳市| 连南| 木兰县| 霍邱县| 荆门市| 东乡县|