DOM4J写文件出现乱码,重新编码也不行,写了个测试的 代码如下
import java.io.*;
import org.dom4j.*;
import org.dom4j.io.*;
public class Test {
public static void main(String[] args)
{
try{
SAXReader reader = new SAXReader();
Document document = reader.read("c:/Demo.txt");
Element root = document.getRootElement();
String a="研发部";
Element newElement=root.addElement("Department")
.addAttribute("value",new String(a.getBytes(),"UTF-8"))
;
// OutputFormat format=new OutputFormat(" ",true,"GBK");
//使用 format能解决问题但是,XML规定为UTF-8
XMLWriter writer = new XMLWriter(
new FileOutputStream(new File("c:/Demo.txt")));
//new FileWriter("c:/Demo.txt"));
//使用FileWriter并不正确,DOM4J并未转码,写第二次时会报错
writer.write( document );
writer.close();
}catch(Exception e){System.out.println(e.getMessage());} }
}
Demo.txt
<?xml version="1.0" encoding="UTF-8"?>
<Company></Company>
import java.io.*;
import org.dom4j.*;
import org.dom4j.io.*;
public class Test {
public static void main(String[] args)
{
try{
SAXReader reader = new SAXReader();
Document document = reader.read("c:/Demo.txt");
Element root = document.getRootElement();
String a="研发部";
Element newElement=root.addElement("Department")
.addAttribute("value",new String(a.getBytes(),"UTF-8"))
;
// OutputFormat format=new OutputFormat(" ",true,"GBK");
//使用 format能解决问题但是,XML规定为UTF-8
XMLWriter writer = new XMLWriter(
new FileOutputStream(new File("c:/Demo.txt")));
//new FileWriter("c:/Demo.txt"));
//使用FileWriter并不正确,DOM4J并未转码,写第二次时会报错
writer.write( document );
writer.close();
}catch(Exception e){System.out.println(e.getMessage());} }
}
Demo.txt
<?xml version="1.0" encoding="UTF-8"?>
<Company></Company>
解决方案 »
- 谁能帮我解释一些这个题目,谢谢!
- 关于静态初始化块(static initialization block)执行先后顺序的一个怪异现象
- 怎样写个邮件自动通知功能?
- 高分求助:已知某个目录下有若干个文件,比如txt,doc等等,可以通过编写java程序知道它们各自的编码方式么?
- 怎样实现在JTable中选中一行后,点上下移动按钮实现移动?
- vector,在线等
- 请问javaBean的开发工具是BDK?
- 为什么我的applet在其他机器显示不出来?
- 如何让JInternalFrame的窗口的样式与windows窗口的样式相同?以及如何让JInternalFrame窗口最小化以后,位于父窗口的左下角
- javamail检查邮件附件的问题
- SessionBean和javabean的区别
- j2me发展空间大还是j2ee发展空间大啊?
public static void main(String[] args)
{
try{
SAXReader reader = new SAXReader();
Document document = reader.read("c:/Demo.xml");
Element root = document.getRootElement();
String a="研发部";
System.out.println(root.getText()+"1");
Element newElement=root.addElement("Department")
.addAttribute("value",new String(a.getBytes("UTF-8"),"UTF-8"))
;
OutputFormat format=new OutputFormat(" ",true,"GBK");
//使用 format能解决问题但是,XML规定为UTF-8
XMLWriter writer = new XMLWriter(
new FileOutputStream(new File("c:/Demo.xml")));
//new FileWriter("c:/Demo.txt"));
//使用FileWriter并不正确,DOM4J并未转码,写第二次时会报错
writer.write( document );
writer.close();
}catch(Exception e){System.out.println(e.getMessage());} }
Element newElement=root.addElement("Department")
.addAttribute("value",new String(a.getBytes("UTF-8"),"UTF-8"))
;
为社么,解码是UTF-8?a.getBytes("UTF-8")