关于ROME使用UTF-8编码写rss文件时出现乱码的解决方法

阅读更多
今天写一个程序使用ROME这个开源组件生成rss2.0文件,使用utf-8格式保存中文总出现乱码,从网上搜了一下发现遇到这个问题的人不少,但是好像没有找到好的解决方法。例如:
保存“中文”两个汉字时就会出现乱码,将保存文件的格式转为gb2312就可以正确显示,说明Rome在保存数据时采用的是gb2312格式,文件utf-8时即出现乱码,这样可以采用将数据转码 http://www.wujianrong.com/archives/2006/11/webworkromerss.html的方法,但是实际运用中还是有部分文字出现乱码,最终其实问题不是出在Rome上而是这里:
 
  1. SyndFeedOutput output = new SyndFeedOutput();    
  2. Writer out = null;
  3. out = new FileWriter("文件名");    
  4. output.output(feed, out);  
  5. 改为
  6. SyndFeedOutput output = new SyndFeedOutput();
  7. Writer writer;
  8. writer = new OutputStreamWriter(new FileOutputStream("文件名")), "UTF-8");
    output.output(feed, writer);
     

这样问题就解决了!  FileWriter写数据时采用的是系统默认的编码格式,所以需要下面的方法来设置使用“UTF-8”编码。      

你可能感兴趣的:(HTML)