Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодировка при получении данных из WEB 
:(
    Опции темы
Никки
  Дата 2.1.2011, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 16.2.2010

Репутация: нет
Всего: нет



Пишу очень простую программу: программа получает txt с определённого url и отображает содержимое в StringItem. Возникает проблема с кодировкой.

Скрипт на сервере генерирует txt в кодировке UTF. Делаю запрос функцией, которую нашёл в примерах от Sun:

Код

StringBuffer buffer = new StringBuffer();

    void getViaStreamConnection(String url) throws IOException 
    {
        StreamConnection c = null;
        InputStream s = null;
        
        try {
            c = (StreamConnection)Connector.open(url);
            s = c.openInputStream();
            buffer.setLength(0);

            int ch;

            while ((ch = s.read()) != -1) {
                process((byte)ch);
            }
        } finally {
            if (s != null) {
                s.close();
            }

            if (c != null) {
                c.close();
            }
        }
    }
    
    void process(byte b) 
    {
        buffer.append((char)b);
    }


А вывожу полученные данные в StringItem:

Код

stringItem.setText(buffer.toString());


Запускаю в эмуляторе и вижу иероглифы. В телефоне просто квадратики...

microedition.encoding и в эмуляторе и в телефоне установлен в ISO-8859-1

Это моя первая программа на J2ME. Как быть? 
PM MAIL   Вверх
Никки
Дата 2.1.2011, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 16.2.2010

Репутация: нет
Всего: нет



Вопрос решил сам. InputStreamReader умеет преобразовывать кодировку, его и использовал следующим образом:

Код

String Result = "";
StringBuffer buffer = new StringBuffer();

StreamConnection con = (StreamConnection)Connector.open(url);
InputStreamReader reader = new InputStreamReader(con.openInputStream(), "UTF-8");
buffer.setLength(0);
while ((ch = reader.read()) != -1) buffer.append((char)ch);
reader.close();
con.close();
Result = buffer.toString(); // тут результат!


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0388 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.