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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кодировка (кракозяблики вместо русского) 
:(
    Опции темы
nerezus
Дата 31.1.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



Код

InputStreamReader reader;
        try {
            reader = new InputStreamReader(this.getClass().getResourceAsStream("/" + filename), "Windows-1251");
        } catch (UnsupportedEncodingException e) {
            System.out.println(">>>>>>>>>Wrong encoding...");
            reader = new InputStreamReader(this.getClass().getResourceAsStream("/" + filename));
        }


кракозяблики вместо русского при выводе =\
При этом на эмул нормально.

WTF?

Добавлено @ 18:39 
файл в 1251


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
javastic
Дата 1.2.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

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



Попробуй вместо windows-1251, использовать utf-8 так будет надёжней.
Попробуй вначале так прочитать, если не получится то сохраняй в utf-8, а потом читай.
Многие телефоны не понимают типа windows-1251, некоторые их воспринимают как cp1251.
По умолчанию в телефоне используется ISO1859-1

Зайди по этой ссылке http://www.vidarholen.net/contents/virca/
там есть исходники IRC клиента в котором используется windows-1251, koi-8


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Vladimir35
Дата 1.2.2007, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(nerezus @ 31.1.2007,  18:38)
кракозяблики вместо русского при выводе =\ При этом на эмул нормально.

WTF?

Обычное дело на j2me.

Попробуйте "windows-1251",  "WINDOWS-1251".... Покрайней мере я встречал и "UTF8", и "utf8", и "UTF-8", и "utf-8", и "Utf-8". smile 

Хотя если исключения нет, то скорее всего ничего не поделаешь. Хотя бы тело укажите.

Это сообщение отредактировал(а) Vladimir35 - 1.2.2007, 11:05
PM MAIL WWW   Вверх
nerezus
Дата 1.2.2007, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



Эх... жалко, что все так криво =\

Сменил на UTF-8 и перекодировал файл Штырлицем...
Работает на эмуле и на мотороле(раньше не работало).
На сименсе и нокии позже проверю )


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
javastic
Дата 1.2.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

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



nerezus, я тебе говорю, посмотри в исходниках по ссылке, там есть метод который умеет читать в windows-1251


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
Arahnus
Дата 23.8.2009, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Посмотрел метод для чтения из Cp1251 из мидлета. Да работает но только в эмуляторе. На реальном телефоне же абракадабра выходит.

Тут советуют utf-8 однако это не всегда подходит для реальных приложений. Что если текст нужно загружать не весь а частями, с какого байта начинать чтение если латинские символы занимают 1 байт, а русские два?
Вы скажете используй InputStreamReader и читай посимвольно. Но InputStreamReader работает не во всех телефонах поэтому приходится использовать InputStream и читать побайтово а не посимвольно. Вот поэтому я считаю что нужно искать рабочий способ для работы с Cp1251

Кто нибудь пробовал принимать текст из Cp1251 вот так:
Код

// в с считываем следующий байт
s.append( (char) ((c>=0xc0 && c<=0xFF) ? (c + 0x350) : c));


У меня на эмуле работает, но на телефоне не могу пока проверить - глючит.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

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

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


 




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


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

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