XMLファイルを読み込んでフォーマットし、同じファイルに再度出力するコードがあります。ただし、エンコーディングが定義されていない場合、出力 XML には UTF-8 が定義されています。
例えば:
<?xml version="1.0"?>
になります:
<?xml version="1.0" encoding="UTF-8"?>
以前にあったエンコーディング (またはエンコーディングの欠如) を保持する方法があるかどうか疑問に思っていましたか?
これが私の現在のコードです:
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document document = docBuilder.parse(file);
OutputFormat format = new OutputFormat(document);
format.setLineWidth(65);
format.setIndenting(true);
format.setIndent(2);
Writer out = new StringWriter();
XMLSerializer serializer = new XMLSerializer(out, format);
serializer.serialize(document);
//custom method to write file
writeFile(filePath, out.toString());
どんな助けでも大歓迎です。ありがとう。