0
私は必要な正しい値を持つXmlObjectを持っています。 例:1½-2YByteArrayOutputStream変換中に特殊文字が追加されました
しかし、それをストリームのバイトに変換しようとすると、結果は1½-2Yと表示されます。
サンプルコード:
私は必要な正しい値を持つXmlObjectを持っています。 例:1½-2YByteArrayOutputStream変換中に特殊文字が追加されました
しかし、それをストリームのバイトに変換しようとすると、結果は1½-2Yと表示されます。
サンプルコード:
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")
。
私はbyteArrayOutputStreamをos.toString()から新しいString(os.toByteArray()、UTF_8_ENCODING)に変更しました。ありがとうございました :) – Mahi