我需要将一个ISO-8859-1编码的文件转换为UTF-8编码,同时不丢失内容信息......
我有一个长这样的文件:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<HelloEncodingWorld>Üöäüßßß Test!!!</HelloEncodingWorld>
我不想将它编码为UTF-8。 我尝试了以下方法:
f=new File('c:/temp/myiso88591.xml').getText('ISO-8859-1')
ts=new String(f.getBytes("UTF-8"), "UTF-8")
g=new File('c:/temp/myutf8.xml').write(ts)
由于字符串不兼容,导致代码无法正常工作。 然后我读到了一些关于ByteStreamReader/Writer/StreamingMarkupBuilder等的内容...
然后我尝试了...
f=new File('c:/temp/myiso88591.xml').getText('ISO-8859-1')
mb = new groovy.xml.StreamingMarkupBuilder()
mb.encoding = "UTF-8"
new OutputStreamWriter(new FileOutputStream('c:/temp/myutf8.xml'),'utf-8') << mb.bind {
mkp.xmlDeclaration()
out << f
}
这完全不是我想要的...
我只想获取使用ISO-8859-1读取的XML内容,然后将其放入一个新(旧)文件中...为什么这么复杂 :-/
结果应该只是这样,而且文件应该真正采用UTF-8编码:
<?xml version="1.0" encoding="UTF-8" ?>
<HelloEncodingWorld>Üöäüßßß Test!!!</HelloEncodingWorld>
感谢任何答案 干杯
File.getText
指定文件的编码,它将自动从该编码转换为您的内部编码。也就是说,只要您的内部编码设置为使用UTF-8,您可能不需要执行任何其他操作。如果我理解有误,请有人纠正我。或者,您得到了哪些确切的错误? - deceze