Mig*_*iro 2 encoding android encode decode utf-8
我正在调用一个返回XML的rest WS.一些元素的字符串包括特殊字符,如áãç等...当我通过浏览器获取信息时,所有这些都显示正确,但是当从Android调用它时,我没有得到正确的特殊字符.
注意'解码'和'编码'变量:
当我使用时
 URLDecoder.decode(result, "UTF-8")
结果保持不变
当我使用时
 URLEncoder.encode(result, "UTF-8")结果更改为预期的结果(%的符号和数字表示符号和特殊字符).
这是调用webservice的方法:
public void updateDatabaseFromWebservice(){
    // get data from webservice
    Log.i(TAG, "Obtaining categories from webservice");
    HttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet(ConnectionProperties.CATEGORIES_URI);
    ResponseHandler<String> handler = new BasicResponseHandler();
    String result = "";
    String decoded;
    String encoded;
    try {                   
        result = client.execute(request, handler);  
        decoded = URLDecoder.decode(result, "UTF-8");
        encoded = URLEncoder.encode(result, "UTF-8");
        String c = "AS";
    } catch (Exception e) {  
        Log.e(TAG, "An error occurred while obtaining categories", e);
    }
    client.getConnectionManager().shutdown();
}
任何帮助,将不胜感激
Vit*_*nko 12
假设服务器以UTF-8编码数据,使用此方法获取xml字符串:
HttpResponse response = client.execute(request);
... // probably some other code to check for HTTP response status code
HttpEntity responseEntity = response.getEntity();
String xml = EntityUtils.toString(responseEntity, HTTP.UTF_8);