Spinner не отображает символы UTF-8 - PullRequest
1 голос
/ 23 августа 2011

Мне нужна помощь с моими счетчиками.

В Spinner настроен следующий код ...

    List<String> lCountries = (Arrays.asList(Countries().split(";")));
  CharSequence[] csCountries = lCountries.toArray(new CharSequence[lCountries.size()]);

  final Spinner sCountry = (Spinner) findViewById(R.id.country);
  ArrayAdapter<CharSequence> aCountry = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, csCountries);
  aCountry.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  sCountry.setAdapter(aCountry);

Список вызывает класс [Countries()], и это код ....

   URL requestURL = new URL("http://www.merso.eu/phone/xml/Country.php");
   URLConnection connection = requestURL.openConnection();

   InputStream isCountry = connection.getInputStream();
   BufferedReader reader = new BufferedReader(new InputStreamReader(isCountry, "UTF-8"));

   StringBuilder sbCountry = new StringBuilder();
   String line;

   sbCountry.append("Select a Country;");

   while ((line = reader.readLine()) != null) {
     sbCountry.append(line);
   }
   Countries = sbCountry.toString();    

Я изменил UTF8 на все возможные изменения utf-8, utf8, UTF-8, UTF8 и вообще ничего.

Я знаю, что список с сервера в порядке, так как он может быть запущен в любом браузере и возвращает список с символами UTF-8.

Чего мне не хватает? Нужно ли вводить UTF-8 где-нибудь еще?

Любая помощь будет оценена.

Спасибо; Рамона

1 Ответ

1 голос
/ 23 августа 2011

Ваш URL объявляет тип контента:

Content-Type: text/html; charset=iso-8859-1

так что ваш читатель должен быть

new InputStreamReader(isCountry, "ISO-8859-1")

Более того, используя HttpClient вместо URLConnection, вы можете получить тип контента: http://developer.android.com/reference/org/apache/http/HttpEntity.html#getContentType%28%29

...