看了一大堆的贴子,愣是没懂,有没有高手,进来看一下,TMD问题严重了???

lenoli 2004-11-02 03:50:06
String sTrExchange = "aaaaaaaacccccccccccccccccccceeeeeeeeeeeeeennnnnnnnnnnn";
try{
OutputStream fout= new FileOutputStream("c:/a.xml");
java.io.PrintStream OutGlobal = new java.io.PrintStream(fout,false,"UTF-8");
OutGlobal.write(sTrExchange.toString().getBytes());
OutGlobal.flush();
OutGlobal.close();
}catch(Exception e){
System.out.println("Exeption: "+ e );
}

我想用上面的代码把生成一个字符集为UTF-8的xml文件,怎么不行啊?盼尽快回复。谢谢

...全文
206 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lenoli 2004-11-02
  • 打赏
  • 举报
回复
呵呵,分少了点。看看能不能申请到FAQ吧
给各位加点信誉分
lenoli 2004-11-02
  • 打赏
  • 举报
回复
呵呵,好了,问题解决了,谢谢各位
xiaohaiz 2004-11-02
  • 打赏
  • 举报
回复
为什么会不行?看看下面的测试程序片断,输出结果是:
b2 e2 ca d4
e6 b5 8b e8 af 95
UTF-8 转换结果是正确的。
=========================================================
<<
public static void main(String[] args) {
String sTrExchange = "测试";

displayBytes(sTrExchange.getBytes());
displayBytes(sTrExchange.getBytes("UTF-8"));
}

private static void displayBytes(byte[] bs) {
for(int i=0; i<bs.length; i++) {
System.out.print(Integer.toHexString(bs[i]&0xFF)+" ");
}
System.out.print("\n");
}
>>
ChDw 2004-11-02
  • 打赏
  • 举报
回复
to : lenoli(可乐吧)

我的方法是肯定没有问题的,是能够很正确的以UTF-8方式输出的

你不要使用记事本看,用UtrlaEdit之类的!!!!
chanceqw 2004-11-02
  • 打赏
  • 举报
回复
getBytes()有问题,是取的defaultEncoding,可以看JDK的源码
而PrintStream(fout,false,"UTF-8");对结果没有影响
另外close()方法自动激活了flush()

修改如下:

String sTrExchange = "abcd";
try{
OutputStream fout= new FileOutputStream("c:/a.txt");
java.io.PrintStream outGlobal = new java.io.PrintStream(fout);
outGlobal.write(sTrExchange.getBytes("UTF-8"));
outGlobal.close();
}catch(Exception e){
e.printStackTrace();
}
}
xiaohaiz 2004-11-02
  • 打赏
  • 举报
回复
另外,俺手头正好有dom4j,用这个生成xml类似这样:
<<
String sTrExchange = "测试cccccccccceeeeeeeeeeeeeennnnnnnnnnnn";

Document doc = DocumentHelper.createDocument();
Element root = doc.addElement( "root" );
root.addText(sTrExchange);

XMLWriter writer = new XMLWriter(new FileWriter("D:/test.xml"));
writer.write(doc);
writer.close();
>>
产生的文件:
<<
<?xml version="1.0" encoding="UTF-8" ?>
<root>测试cccccccccceeeeeeeeeeeeeennnnnnnnnnnn</root>
>>
lenoli 2004-11-02
  • 打赏
  • 举报
回复
上面的我试过了,"utf-8"的不行,但是"unicode"的却可以,奇怪了
tangbow 2004-11-02
  • 打赏
  • 举报
回复
String sTrExchange = "aaaaaaaacccccccccccccccccccceeeeeeeeeeeeeennnnnnnnnnnn";
BufferedWriter wr= new BufferedWriter(new FileWriter("c:\\1.txt"));

wr.newLine();
wr.write(sTrExchange );

wr.close();
xiaohaiz 2004-11-02
  • 打赏
  • 举报
回复
可乐啊,介个问题素很简单的,不像乃应该问出来的啊:
<<
String sTrExchange = "测试cccccccccceeeeeeeeeeeeeennnnnnnnnnnn";

FileOutputStream fos = new FileOutputStream("D:/data.txt");
fos.write(sTrExchange.getBytes("UTF-8"));
fos.close();
>>
这样就可以了。。。
czcui1979 2004-11-02
  • 打赏
  • 举报
回复
这样可以不?

String tmpStr = new String(sTrExchange, "UTF-8");

然后把tmpStr写到文件里
lenoli 2004-11-02
  • 打赏
  • 举报
回复
不论谁解决我一定争取FAQ给加信誉分,可用分是小问题吧,呵呵
lenoli 2004-11-02
  • 打赏
  • 举报
回复
to: xiaohaiz(城里的老土,两眼依然通红!)
我不一定要.xml的,生成.txt也可...........
就是要生成的文件用记事本打开后另存的时候默认编码方式的UTF-8的

盼赐教,感谢
lenoli 2004-11-02
  • 打赏
  • 举报
回复
ChDw(米).你好

我按你的方法作了,也是不行哦
我生成的文件用记事本打开然后另存,看下面的字符集还不是utf-8

郁闷...........
eddygtimegod 2004-11-02
  • 打赏
  • 举报
回复
用Jdon,如果想对象序列化的XML形式,应该用XMLEncoder。^_^
deodara 2004-11-02
  • 打赏
  • 举报
回复
XML文件可不是这么写吧,你这样只是保存了一个扩展名为xml的文件,而不是一个XMl文件!
要生成一个XML文件,你需要做的工作还有很多,具体操作请使用Google查找一下,JDK的帮助中也提供了相应的操作类包
ChDw 2004-11-02
  • 打赏
  • 举报
回复
//OutGlobal.write(sTrExchange.toString().getBytes());//你这样已经强制使用了GB2312格式了
OutGlobal.println(sTrExchange);
xiaohaiz 2004-11-02
  • 打赏
  • 举报
回复
xml不是这么写的啊
3xcom 2004-11-02
  • 打赏
  • 举报
回复
up

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧