Преобразовать ISO-8859-1 в UTF-8 с использованием Groovy

Мне нужно преобразовать файл 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>

Спасибо за любые ответы Ура

10
задан Booyeoo 2 September 2011 в 09:32
поделиться