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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с кодировкой win-1251 
V
    Опции темы
ZedroXyMur
  Дата 14.6.2007, 12:28 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет всем!
Я долго сдержирал себя не напостить тут на эту тему.. думал сам как то решу. Перекопал форумы все возможные - решить трабл не удалось :(
А вот в чем суть:
Задача:
Отобразить на экране мобилы текст принятый от сервера в кодировке Windows-1251 (Cp1251).
Что я делаю:
1) принимаю RSS с http://news.yandex.ru/finances.rss в byte[]
2) пробую его перекодировать стандартным способом - кодовой страницей на телефоне и пропарсить в kXML: 
reader = new InputStreamReader(new ByteArrayInputStream(packet),"windows-1251"); // cyr1251 windows-1251 win1251
3) т.к. на некоторых телефонах нет windows-1251, то проверяю на UnsupportedEncodingException, пробую перекодировать вручную в юникод и пропарсить в kXML:
int ch = 0;
InputStream is = new ByteArrayInputStream(packet);
StringBuffer sb = new StringBuffer();
while ((ch = is.read()) != -1){
  sb.append((char)ch);
}
Codepage cp;
cp = new CP1251();
if(cp!=null)
    cp.init();
String packet_conv = cp.serverToUnicode(sb.toString());
reader = new InputStreamReader(new ByteArrayInputStream(packet_conv.getBytes()));
А ТЕПЕРЬ САМОЕ ИНТЕРЕСНОЕ! smile Разпарсиваю.. все ок... Отображаю на эмуляторе - все работает! А на телефоне - НЕТ :(( весь русский текст отображаеться знаками вопросов <?> %/
ЗЫ: еще 1 интересный момент - на телефоне Nokia 6230 кодировка windows-1251 есть и на нем все отображаеться норм по дефолту, а на Nokia 3230 - НЕТ и все в знаках вопроса :(
НАРОД! ХХЕЕЛЛП! smile
PM MAIL   Вверх
Dancer
Дата 14.6.2007, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 29.4.2005
Где: Nizhniy Novgorod

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



а чего не пытаешься UTF-8 использовать?
packet_conv.getBytes("UTF-8")

getBytes() - тебе же будет возвращать символы в дефолтовой кодировке, а откуда ты знаешь, что она у тебя кириллическая?

Ну и совсем хреновый варинт - это пишешь буковки сам в какой-нить PNG и вырезаешь нужную тебе буковку по определённому алгоритму, когда нужно отобразить эту буковочку.


--------------------
У программистов есть великая тайна: всё, что только можно, было давно кем-то когда-то написано. Разработчику только нужно знать в какое место кода какие строчки вставить! smile
PM MAIL   Вверх
ZedroXyMur
Дата 14.6.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



УРРААА!!! ПОЛУЧИЛОСЬ!  smile 
Мега тупой прикол - нужно было после ручного перекодирования
вместо 
reader = new InputStreamReader(new ByteArrayInputStream(packet_conv.getBytes()));
сделать
reader = new InputStreamReader(new ByteArrayInputStream(packet_conv.getBytes("UTF-8")),"UTF-8");
ВСЕМ СПАСИБО!  smile 

Это сообщение отредактировал(а) ZedroXyMur - 14.6.2007, 14:39
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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