SQL Server - Definition einer Spalte vom Typ XML mit UTF-8-Codierung

Die Standard-Kodierung für XML-Typ definierten Feld in einer SQL-Servers ist UTF-16. Ich habe keine Probleme beim einfügen in das Feld mit UTF-16-codiertes XML-streams.

Aber wenn ich versuchte, fügen Sie in das Feld mit UTF-8-codierte XML-stream, der insert-Versuch würde die Fehlermeldung Reaktion
unable to switch encoding.

FRAGE: gibt es eine Möglichkeit zu definieren, die eine SQL Server-Spalte/Feld als UTF-8-Codierung?

Weitere info

Den Einfüge-Operationen werden durchgeführt unter Verwendung von Spring JDBCTemplate.

Den XML-Strom wurde produziert von JAXB Marshaller set auf UTF-8 oder UTF-16-Codierung.

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();
}

Wo ...

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;
    }
}

InformationsquelleAutor Blessed Geek | 2017-01-05

Schreibe einen Kommentar