您好 我正在尝试在android中构建一个小的休息客户端。我只是尝试获取一个可以在以后解析的xml文件。但是我有一些编码问题。
无法识别ø和å等特殊字符。 xml文件使用ISO-8859-1编码,但我无法弄清楚如何强制httpclient使用此编码。任何能够提供帮助的人吗?
以下是代码:
public class MainActivity extends Activity {
/** Called when the activity is first created. */
String URL = "http://konkurrence.rejseplanen.dk/bin/rest.exe";
String result = "";
Button btn;
TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv = (TextView)findViewById(R.id.tvResponse);
btn = (Button)findViewById(R.id.btnMakeRequest);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String query = "/departureBoard?id=8600626&date=19.03.11&time=07:02&useBus=0";
callWebService(query);
}
});
}
public void callWebService(String q){
HttpClient httpclient = new DefaultHttpClient();
HttpGet request = new HttpGet(URL + q);
ResponseHandler<String> handler = new BasicResponseHandler();
try {
result = httpclient.execute(request, handler);
tv.setText(result);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
httpclient.getConnectionManager().shutdown();
Log.i("test", result);
}
}
提前谢谢。
最好的问候,肯尼思
答案 0 :(得分:0)
我会看看响应的标题。响应需要设置:
Content-Type: text/xml; charset:ISO-8859-1;
否则,我的理解是http客户端将默认编码为utf-8。如果您的Web服务正在使用它来尝试确定您想要的内容,您可能还需要调整请求中的标头。要知道的是,如果你在浏览器中这样做,你会得到iso文件或utf-8吗?