2011-09-07 13 views
8

Tôi có tệp XML với bộ mã hóa trong đó: <?xml version="1.0" encoding="ISO-8859-15"?> nhưng tệp thực sự được mã hóa bằng UTF-8. Có cách nào để ghi đè lên mã hóa khai báo trong tập tin XML khi unmarshalling nó với JAXB?Ghi đè mã hóa được khai báo trong khi không sửa đổi với JAXB

+0

Tôi biết đây là loại trễ, nhưng tôi không nghĩ đó là hợp pháp về mặt kỹ thuật. Và nó chắc chắn không phải là một ý tưởng hay. – fool4jesus

Trả lời

18

Bạn có thể unmarshal nội dung từ một java.io.Reader để cung cấp mã hóa thực tế:

Unmarshaller unmarshaller = jc.createUnmarshaller(); 
InputStream inputStream = new FileInputStream("input.xml"); 
Reader reader = new InputStreamReader(inputStream, "UTF-8"); 
try { 
    Address address = (Address) unmarshaller.unmarshal(reader); 
} finally { 
    reader.close(); 
} 

Để biết thêm thông tin

Các vấn đề liên quan