【发布时间】:2011-01-07 19:29:02
【问题描述】:
我正在调用一个返回 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();
}
任何帮助将不胜感激
【问题讨论】:
标签: android encoding utf-8 decode encode