我需要一個ISO-8859-1文件轉換爲UTF-8編碼,沒有鬆動的內容intormations ...轉換ISO-8859-1到UTF-8使用Groovy
我有一個文件,它看起來像這個:
<?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
}
這是完全不正是我想要的..
我只是想獲得用ISO-8859-1讀取器讀取一個xml的內容,然後將其放入一個新的(舊)文件...爲什麼這是如此複雜: -/
結果應該是,文件應該是真的用utf-8編碼:
<?xml version="1.0" encoding="UTF-8" ?>
<HelloEncodingWorld>Üöäüßßß Test!!!</HelloEncodingWorld>
感謝您的任何答案 乾杯
我還沒有得到關於Groovy的第一個想法,但我認爲如果你指定'File.getText'文件的編碼,它將從轉換即自動編碼到您的內部編碼。即只要您的內部編碼設置爲使用UTF-8,您可能不需要執行其他任何操作。有人糾正我,如果我在這裏偏離軌道。或者,您得到的確切錯誤是什麼? – deceze