gpt4 book ai didi

android - 调用 REST web 服务时 Android 中的 UTF8 编码

转载 作者:太空狗 更新时间:2023-10-29 15:34:05 27 4
gpt4 key购买 nike

我正在调用一个返回 XML 的休息 WS。有些元素的字符串包含特殊字符,如 áãç 等...当我通过浏览器获取信息时,所有信息都正确显示,但是当从 Android 调用它时,我没有得到正确的特殊字符。

注意“解码”和“编码”变量:

当我使用URLDecoder.decode(result, "UTF-8")结果保持不变

当我使用URLEncoder.encode(result, "UTF-8") 结果变为预期的结果(充满 % 的符号和代表符号和特殊字符的数字)。

调用网络服务的方法如下:

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

任何帮助将不胜感激

最佳答案

使用它来获取 xml 字符串,假设服务器以 UTF-8 编码数据:

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

关于android - 调用 REST web 服务时 Android 中的 UTF8 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4629456/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com