使用Java和UTF-8编码产生有效的XML

使用Java和UTF-8编码产生有效的XML,第1张

使用Java和UTF-8编码产生有效的XML

使用FileOutputStream而不是FileWriter。

后者使用自己的编码,几乎可以肯定不是UTF-8(取决于您的平台,它可能是Windows-1252或IS-8859-1)。

编辑(现在有时间):

不带序的XML文档被允许编码为UTF-8或UTF-16。对于序言,可以指定其编码(序言只能包含US-ASCII字符,因此序言始终可读)。

读者处理字符;它将解码基础InputStream的字节流。结果,当您将Reader传递给解析器时,您将告诉您已经处理了编码,因此解析器将忽略序言。当您传递一个InputStream(读取字节)时,它不会进行此假设,而是会在序言中定义编码-
如果不存在,则默认为UTF-8 / UTF-16。

我从未尝试读取以UTF-16编码的文件。我怀疑解析器将寻找字节顺序标记(BOM)作为文件的前2个字节。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5586453.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存