set encoding utf-8 for ksoap2 in android

2019-06-28 05:33发布

问题:

I have problem with ksoap2, i want set encoding utf-8 for ksoap2 in android, or set content-type in header is text/xml,charset=utf=8, my code: //set encoding

envelope.encodingStyle = "utf-8";

//set header

envelope.headerOut = new Element[1];
envelope.headerOut[0] = buildAuthHeader();

private Element buildAuthHeader() {
    String namesc = "http://xml.apache.org/xml-soap";
    Log.i("---build--","--buildAuthHeader--->");
    Element h = new Element().createElement(namesc, "Headers");
    Element username = new Element().createElement(namesc, "Content-Type");
    username.addChild(Node.TEXT, "text/xml;charset=UTF-8");
    h.addChild(Node.ELEMENT, username);

    return h;
}

but not work. please help me. thanks.

回答1:

I believe that it is done like so:

HttpTransportSE transport = new HttpTransportSE(URL, TIME_OUT);
transport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"utf-8\"?>");