tôi cần phải chuyển đổi một tập tin ISO-8859-1 sang UTF-8 mã hóa, mà không mất intormations nội dung ...Chuyển đổi ISO-8859-1 sang UTF-8 sử dụng groovy
tôi có một tập tin mà trông giống như này:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<HelloEncodingWorld>Üöäüßßß Test!!!</HelloEncodingWorld>
Tôi không muốn mã hóa nó thành UTF-8. Tôi đã thử theo dõi:
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)
không hoạt động do Chuỗi không tương thích. Sau đó, tôi đọc một cái gì đó về bytestreamreaders/nhà văn/streamingmarkupbuilder và khác ...
sau đó tôi đã cố gắng
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
}
này là hoàn toàn không phải là những gì tôi muốn ..
Tôi chỉ muốn nhận được nội dung của một lần đọc xml với trình đọc ISO-8859-1 và sau đó đặt nó vào một tệp (cũ) mới ... tại sao điều này phức tạp như vậy: -/
Kết quả phải là, và tệp phải là thực sự được mã hóa trong utf-8:
<?xml version="1.0" encoding="UTF-8" ?>
<HelloEncodingWorld>Üöäüßßß Test!!!</HelloEncodingWorld>
Thanks cho bất kỳ câu trả lời Cheers
tôi đã không có ý tưởng đầu tiên về Groovy, nhưng tôi cho rằng nếu bạn chỉ định mã hóa của file cho 'File.getText', nó sẽ được chuyển đổi từ mã hóa tự động mã hóa nội bộ của bạn. I E. bạn có thể không cần phải làm bất cứ điều gì khác miễn là mã hóa nội bộ của bạn được thiết lập để sử dụng UTF-8. Ai đó sửa tôi nếu tôi không theo dõi ở đây. Ngoài ra, các lỗi chính xác bạn nhận được là gì? – deceze