SQL Server - определение столбца типа XML с кодировкой UTF-8
Кодировка по умолчанию для поля типа XML, определенного в SQL Server, - UTF-16. У меня нет проблем при вставке в это поле с потоками XML в кодировке UTF-16.
Но если я попытаюсь вставить в поле поток XML-кода в кодировке UTF-8, попытка вставки получит ответ об ошибкеunable to switch encoding
.
ВОПРОС: Есть ли способ определить столбец / поле SQL Server как с кодировкой UTF-8?
Дальнейшая информацияОперации вставки выполняются с использованием Spring JDBCTemplate.
Поток XML был создан JAXB Marshaller с кодировкой 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;
}
}