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

          真正的快樂來源于創造

            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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 广汉市| 中阳县| 苍梧县| 宁安市| 怀宁县| 教育| 泸定县| 嫩江县| 汤阴县| 汉阴县| 绥棱县| 合作市| 玛多县| 固原市| 通道| 黔江区| 无棣县| 张家港市| 绥滨县| 微博| 岐山县| 广宁县| 淮南市| 洛扎县| 漯河市| 拜城县| 秭归县| 建水县| 三门县| 富源县| 襄垣县| 阆中市| 唐山市| 商城县| 乐业县| 长宁县| 会泽县| 宜宾县| 澄江县| 玉林市| 九江县|