我在 Java 中有一个字符串,这个字符串代表一个XML文件的内容(我在其他过程中生成),我在编码中遇到问题,在标题中我有UTF-8
的XML,但是当我试图解析它时,我得到了与编码有关的错误,确切地说:
Byte not valid 2 pf the sequence UTF-8 of 4 bytes
所以,我用 Notepad ++ 打开了文件,并说它是ANSI编码的。我想在将字符串转换为UTF-8
之后将其保存到文件中,我用以下方法进行了编写:
byte[] encoded = content.getBytes(StandardCharsets.UTF_8);
但是,我如何将其保存在文件中?我希望用户能够在任何文本编辑器中打开XML文件,但现在我有字节。如何保存?
答案 0 :(得分:0)
以下内容应该
// Ensure that the stated encoding in the XML is UTF-8:
// $1______________________ $2_____ $3_
content = content.replaceFirst("(<\\?xml[^>]+encoding=\")([^\"]*)(\")",
"$1UTF-8$3");
byte[] encoded = content.getBytes(StandardCharsets.UTF_8);
Files.writeBytes(Paths.get("... .xml"), encoded);
对于编辑,需要一个支持UTF-8的编辑器(JEdit,Notepad ++) - 在Windows下。
Notepad ++应识别该文件,您可以使用正确的编码重新加载它。
答案 1 :(得分:0)
尝试Files.write(Paths.get("output.xml"), encoded);
。