2016-11-24 10 views

答えて

0
import org.apache.xmlbeans.XmlObject; 
Class MyClass implements XmlBuilder<T> { 

protected final String serializeToXml(XmlObject xmlObject) { 
    ByteArrayOutputStream os = null; 
    try { 
     os = new ByteArrayOutputStream(); 
     xmlObject.save(os,createXmlOptions()); /Its adding a special char here 
     return os.toString(); 
    } 
} 
protected final XmlOptions createXmlOptions() { 
    final XmlOptions xmlOptions = new XmlOptions(); 
    xmlOptions.setValidateOnSet(); 
    xmlOptions.setCharacterEncoding(UTF_8_ENCODING); 
    return xmlOptions; 
} 
} 

os.toString()は内部new String(buffer)呼ぶ、従って私はない UTF-8であると仮定システムエンコーディングを使用します。

通常、エンコードを明示的に指定する必要があります。 new String(os.toByteArray(), "UTF-8")

+0

私はbyteArrayOutputStreamをos.toString()から新しいString(os.toByteArray()、UTF_8_ENCODING)に変更しました。ありがとうございました :) – Mahi

関連する問題