XStream'in SSS'sine göre, varsayılan çözümleyici, UTF-8 belge kodlamasını korumaz ve biri kendi kodlayıcısını sağlamalıdır. Bunu nasıl yapıyor?XStream çerçevesini kullanarak UTF-8'i nasıl kodlarım?
Teşekkürler!
XStream'in SSS'sine göre, varsayılan çözümleyici, UTF-8 belge kodlamasını korumaz ve biri kendi kodlayıcısını sağlamalıdır. Bunu nasıl yapıyor?XStream çerçevesini kullanarak UTF-8'i nasıl kodlarım?
Teşekkürler!
UTF-8 kodlaması ile bir yazar oluşturun. Yazarı XStream'in toXML yöntemine bir argüman olarak geçirin.
XStream xstream = new xStream();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Writer writer = new OutputStreamWriter(outputStream, "UTF-8");
xStream.toXML(object, writer);
String xml = outputStream.toString("UTF-8");
Ayrıca XML Deklarasyonu içerecek şekilde Writer kullanabilir.
writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
xStream.toXML(object, writer);
Diğer bir çözüm, bir sürücü vasıtasıyla, doğru kodlama XStream-nesneyi başlatmak olacaktır.
XStream xstream = new XStream(new DomDriver("UTF-8"));
(varsayılan) PrettyPrintWriter
doğru kodlaması ile OutputStream tarafından sarılmış olacaktır: gibi bu görünecektir DomDriver kullanma. Sen şu şekilde görünecektir Jeromy en Örneğin @, XStream güncel bir sürümü ile ... Ancak bu şekildeAncak DomDriver yavaş. –
UTF-8 başlık eklemek olamazdı:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
OutputStreamWriter writer = new OutputStreamWriter(stream, "UTF-8");
HierarchicalStreamWriter xmlWriter = new PrettyPrintWriter(writer);
xstream.marshal(object, xmlWriter);
return new String(stream.toByteArray(), "UTF-8");
+1 sayesinde - sadece bu & tökezledi dokümanlar içinde kolayca bulunamadı. – davek
Teşekkürler, sorunumu çözdüm. – Jaycee