Ho bisogno di convertire un file ISO-8859-1 di codifica UTF-8, senza perdere intormations contenuti ...Convert ISO-8859-1 a UTF-8 usando Groovy
Ho un file che sembra this:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<HelloEncodingWorld>Üöäüßßß Test!!!</HelloEncodingWorld>
Non voglio codificarlo in UTF-8. Ho provato seguente:
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)
non funzionava a causa di incompatibilità String. poi ho letto qualcosa a proposito bytestreamreaders/scrittori/streamingmarkupbuilder e altro ...
poi ho provato
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
}
questo non era del tutto che ciò che volevo ..
voglio solo per ottenere il il contenuto di un xml letto con un lettore ISO-8859-1 e poi lo mise in un nuovo (vecchio) file ... perché questo è così complicato: -/
Il risultato dovrebbe essere solo, e il file dovrebbe essere veramente codificato in utf-8:
<?xml version="1.0" encoding="UTF-8" ?>
<HelloEncodingWorld>Üöäüßßß Test!!!</HelloEncodingWorld>
Grazie per eventuali risposte Acclamazioni
non ho la prima idea di Groovy, ma suppongo che se si specifica la codifica del file per 'File.getText', sarà convertito da che codifica automaticamente per la codifica interna. Cioè probabilmente non è necessario fare nient'altro se la codifica interna è impostata per utilizzare UTF-8. Qualcuno mi corregge se sono fuori pista qui. In alternativa, quali sono gli errori esatti che ottieni? – deceze