【问题标题】:android: get string with correct encoding from web serviceandroid:从网络服务获取具有正确编码的字符串
【发布时间】:2014-09-11 16:09:04
【问题描述】:

我正在尝试在我的 android 应用程序中从 PHP 网络服务获取字符串结果,我使用了 ksaop2 库,这是我的代码:

env = new SoapSerializationEnvelope(SoapEnvelope.VER11);
env.dotNet = false;
env.xsd = SoapSerializationEnvelope.XSD;
env.enc = SoapSerializationEnvelope.ENC;
request = new SoapObject("customWebService","addProductToCart");
request.addProperty("sessionID", sessionId);
request.addProperty("cartID", cartID);
request.addProperty("productID", productID);
request.addProperty("qty", qty);
request.addProperty("sku", productSKU);
env.setOutputSoapObject(request);

androidHttpTransport = new HttpTransportSE(
    "http://mysiteeee.com/WebServiceSOAP/server.php?wsdl/",
    60000);
androidHttpTransport.debug = true;
androidHttpTransport.call("", env);

result = env.getResponse();

它返回了这个:

???·???§?? ?¯?²?????? (???§??) ?§???²?§???? ???­?µ???? ?±?§ ???´?®?µ ?©?????¯.

我在 UTF-8 编码的 Chrome 和 Firefox 上测试它并在浏览器上正确显示结果。

如何通过正确的编码从 Web 服务中获取结果并在 android 上显示?

【问题讨论】:

    标签: php android web-services encoding character-encoding


    【解决方案1】:

    尝试以这种方式获得响应:

    androidHttpTransport.call(SOAP_ACTION, envelope);
    // Get the SoapResult from the envelope body.
    SoapObject result = (SoapObject)envelope.bodyIn;
    String Test1 = result.getProperty(0).toString();
    

    编辑:尝试为请求设置 Xml 标头标记:

    androidHttpTransport.setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
    

    【讨论】:

    • 现在它返回给我这个:addProductToCartResponse{return=???·???§?? ?¯?²?????? (???§??) ?§???²?§???? ????微???? ?±?§ ???´?®?µ ?©?????¯.; }
    • @mahdi :请查看编辑后的答案,希望它改变响应
    • 响应没有改变。
    • 我在使用 Unicode 发送和接收字符串时遇到了这个问题。
    • @mahdi :我不认为有任何其他方法可以在 android 中获得正确的响应。可能是网络服务部分导致了问题。
    猜你喜欢
    • 1970-01-01
    • 2012-11-07
    • 2017-10-05
    • 2013-05-20
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    相关资源
    最近更新 更多