当柳上原的风吹向天际的时候...

真正的快乐来源于创造

  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 何杨 阅读(766) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: