Проблема кодирования Android httpclient (запрос) - PullRequest
0 голосов
/ 05 марта 2011

Привет Я пытаюсь построить небольшой клиент для отдыха в 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);  
    } 
}

спасибо заранее. С наилучшими пожеланиями, Кеннет

1 Ответ

0 голосов
/ 05 марта 2011

Я бы взглянул на заголовки ответа.Ответ должен будет установить:

Content-Type: text/xml; charset:ISO-8859-1;

В противном случае я понимаю, что http-клиент по умолчанию будет кодировать в utf-8.Вам также может понадобиться изменить заголовок по вашему запросу, если ваш веб-сервис использует его, чтобы попытаться определить, что вы хотите.Следует знать, что если вы сделаете это в браузере, получите ли вы документ iso или документ utf-8?

HTTPGet расширяет этот класс методами заголовков

Информация об источнике в кодировке xml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...