muszę przekonwertować plik ISO-8859-1 na UTF-8, bez utraty intormations treści ...Konwersja ISO-8859-1 na UTF-8 za pomocą Groovy
Mam plik, który wygląda jak to:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<HelloEncodingWorld>Üöäüßßß Test!!!</HelloEncodingWorld>
Nie chcę kodować go do UTF-8. Próbowałem następujące:
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)
nie działał z powodu niekompatybilności Smyczkowych. Potem przeczytałem coś o bytestreamreaders/pisarze/streamingmarkupbuilder i inne ...
następnie próbowałem
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
}
to nie był całkowicie to, co chciałem ..
Chcę tylko, aby uzyskać zawartość xml czytana z czytnikiem ISO-8859-1, a następnie umieszczana w nowym (starym) pliku ... dlaczego jest to tak skomplikowane: -/
Wynik powinien być po prostu, a plik powinien być naprawdę zakodowane w utf-8:
<?xml version="1.0" encoding="UTF-8" ?>
<HelloEncodingWorld>Üöäüßßß Test!!!</HelloEncodingWorld>
Dzięki za wszelkie odpowiedzi Cheers
Nie mam pojęcia o pierwszej Groovy, ale zakładam, że jeśli określić kodowanie pliku dla 'File.getText', zostanie on przekształcony z kodowanie do twojego wewnętrznego kodowania automatycznie. To znaczy. prawdopodobnie nie musisz robić nic więcej, o ile twoje wewnętrzne kodowanie jest ustawione na używanie UTF-8. Ktoś mnie poprawi, jeśli nie jestem tutaj. Alternatywnie, jakie są dokładne błędy, które otrzymujesz? – deceze