【发布时间】:2014-04-08 20:52:15
【问题描述】:
我有一个 UTF-8 编码的 XML 文件(XMLSpy 和 NotePad++ 都将其显示为编码)。该文件包含韩语字符串,在两个编辑器中都可以正常显示。
<Table>
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="290.25"/>
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="String">왕복</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="String">..에서</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="String">편도</Data>
</Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell>
<Data ss:Type="String">기내</Data>
</Cell>
</Row>
</Table>
我正在使用 Groovy 解析 XML 文件并将内容写入新的 XML 文件。
XmlParser parser = new XmlParser();
def inputSource = new InputSource(new FileReader(file));
inputSource.setEncoding('UTF-8');
def workbook = parser.parse(inputSource);
然后我将它写到一个新的 XML 文件中,指定 UTF-8,即使我认为不需要这样做。
def finalFileWriter = new FileWriter(new File(file.getName()+"_clean.xml").asWritable('UTF-8'));
def printer = new XmlNodePrinter(new PrintWriter(finalFileWriter));
printer.preserveWhitespace = true;
printer.print(workbook);
根据 XMLSpy 的说法,生成的 XML 文件包含不应出现在使用 UTF-8 的文件中的字符,因此会被垃圾替换。它们在 Notepad++ 中也显示不正确。两位编辑都说新文件是 UTF-8 编码的。
上面的代码在操作其他 3 个相同结构的文件时运行良好,分别是简体中文、繁体中文和日文。任何指导都会很棒。
谢谢
【问题讨论】:
-
你有一些示例输入吗?
-
感谢您将 XML 放入原始帖子 :)