我有一個UTF-8編碼的XML文件(XMLSpy和NotePad ++都顯示爲編碼)。該文件包含韓文字符串,這兩個編輯器都可以正常顯示。Groovy - 用XML解析韓語的編碼問題
<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);
生成的XML文件,根據XMLSpy的,所包含的字符,不應該使用UTF-8存在於一個文件,並因此得到與垃圾取代。它們也在Notepad ++中顯示不正確。兩位編輯都說新文件是UTF-8編碼的。
上面的代碼在其他3個身份結構的文件(簡體中文,繁體中文和日文)上運行時工作得非常好。任何指導都很棒。
感謝
你有一些示例輸入嗎? –
感謝您將XML放入原始文章:) – Shigsy