用于在SQL Server的定义的XML类型字段的默认编码是UTF-16。 我有麻烦插入到该领域使用UTF-16编码XML流。
但是,如果我试图插入使用UTF-8编码的XML流领域,插入的企图会收到错误响应
unable to switch encoding
。
问 :是否有一种方法来定义一个SQL Server列/字段具有UTF-8编码?
进一步信息插入操作使用Spring的JdbcTemplate进行。
通过JAXB的Marshaller产生的XML流设置为UTF-8或UTF-16编码。
private String marshall(myDAO myTao, JAXBEncoding jaxbEncoding)
throws JAXBException{
JAXBContext jc = JAXBContext.newInstance(ObjectFactory.class);
m = jc.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
if (jaxbEncoding!=null)
m.setProperty(Marshaller.JAXB_ENCODING, jaxbEncoding.toString());
StringWriter strw = new StringWriter();
m.marshal(myTao, strw);
String strw.toString();
}
其中...
public enum JAXBEncoding {
UTF8("UTF-8"),
UTF16("UTF-16")
;
private String value;
private JAXBEncoding(String value){
this.value = value;
}
public String toString(){
return this.value;
}
}