Мне нужно преобразовать файл 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)
не работал из-за несовместимости строк. Тогда я что-то читал о Bytestreamreaders / писатели / 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
}
Это было совершенно не то, что я хотел ..
Я просто хочу получить содержание XML прочитанного с помощью ISO-8859-1 Reader, а затем поместите его в новый (старый) файл ... Почему это так сложно: - /
Результат должен быть только что должен быть, и файл должен быть действительно закодирован в UTF-8:
<?xml version="1.0" encoding="UTF-8" ?>
<HelloEncodingWorld>Üöäüßßß Test!!!</HelloEncodingWorld>
Спасибо за любые ответы Ура