![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
GavriKos |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 8.8.2007 Где: Донецк, Украина Репутация: нет Всего: 1 |
Доброго времени суток всем! Стоит задача - прочитать строку из фала (строка заканчивается 13 символом) и вывести ее на экран (вывести через канвас). Сделал чтение строки таким вот образом:
На экран выводится вместо строк толпа кракозябриков. Полазил по форуму, нашел много вариантов, но ни один не помог. Пробовал вручную менять символы на юникодовские (switch-case), не помогло. Через s.getBytes("utf") тоже ничего не получилось. Нашел один метод в книге буткевичА, там автор тоже заменяет символы на юникодовские, причем не через свич, а поиском подстроки в строке, но вот только стока юникодовских символов кажется некорректная - нормально переводит только большие буквы. Подскажите как быть? Может что то изменить в функции чтения? IDE - NetBeans 6. Текст в файл вписывал в самой IDE (файл идет ресурсом, естественно). --------------------
Донецкая группа IT - присоединяемся |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: нет Всего: 40 |
data.read() читает байт. А тебе надо читать символ в какой-то кодировке. попробуй
Добавлено через 4 минуты и 16 секунд Опять спутал раздел :( этот кусок кода актуален для SE, для ME даже не знаю. |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Попробуй так читать содержимое файла. Этот метод возвращает строку - содержимое файла. Из этой строки ты сможешь достать нужные тебе подстроки. *Учитывай, что файл должен быть в кодировке Win-1251. |
|||
|
||||
GavriKos |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 8.8.2007 Где: Донецк, Украина Репутация: нет Всего: 1 |
2 Platon: Насколько я понял, ты предлогаешь читать не из DataInputStream, а из InputStreamReader? Это не помогло. Проверил выводом System.out.println - тоже выводит кракозябры...
Это сообщение отредактировал(а) GavriKos - 13.7.2008, 16:02 --------------------
Донецкая группа IT - присоединяемся |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: нет Всего: 40 |
GavriKos, а ты выбрал нужную кодировку?
|
|||
|
||||
GavriKos |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 8.8.2007 Где: Донецк, Украина Репутация: нет Всего: 1 |
eugine_s - спасибо, помогло!
![]() Насколько я понял, strBuff.append((char) ((ch >= 0xc0 && ch <= 0xFF) ? (ch + 0x350) : ch)); отвечает за преобразование символа в его юникодовский аналог? Добавлено через 3 минуты и 29 секунд Все, разобрался, получилось. ВОт моя функция с поправкой, вдруг кому понадобится:
Добавлено через 4 минуты и 49 секунд 2 Platon - да ,пробовал с разными кодировками. --------------------
Донецкая группа IT - присоединяемся |
|||
|
||||
eugine_s |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 14.11.2007 Где: Киев Репутация: 17 Всего: 17 |
Да, это преобразование Win -> UTF Только в этом методе с буквой Ё и ё проблемы, они не вписываются такое правило преобразования символов... |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: нет Всего: 40 |
Лично проверил >_< |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |