質問の主題が複雑に見えても、問題は非常に単純です。
次のスクリプトを使用して XML ファイルを作成します。
def xmlFile = new File("file-${System.currentTimeMillis()}.xml")
mb = new groovy.xml.StreamingMarkupBuilder()
mb.encoding = "UTF-8"
new FileWriter(xmlFile) << mb.bind {
mkp.xmlDeclaration()
out << "\n"
someMarkup {}
}
次に、次のようなコードを使用してこのファイルを解析すると:
def xml = new XmlSlurper().parse(xmlFile)
次のMalformedByteSequenceException
例外が発生しました。
スローされた例外: 3 バイト UTF-8 シーケンスの無効なバイト 2
そして、ファイルを UTF-8 形式 (たとえば、Notepad++ を使用) に変換すると、すべて問題ありません。
では、ファイルを UTF-8 形式で保存するにはどうすればよいでしょうか? コードmb.encoding = "UTF-8"
がそれをしないのはなぜですか?
どうも