Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > текстовые файлы с русскими буквами


Автор: aaa25 25.12.2010, 17:38
я хочу написать прогу типа "блокнот"  в netbeans для мобилы. пока что разобрался как файл набрать (текстбокс), сохранить и потом опять загрузить в текстбокс (FileConnection). но если в тексте имеются русские буквы - в считанном тексте в текстбоксе стоят знаки вопроса. т.е. видно только латинские буквы. в одной книге я читал, что надо пользоваться юникодом, но непонятно, как.  может кто объяснит, желательно с примером или ссылкой на литературу. может кто встречал   готовую прогу типа блокнот для мобилы на джаве (я бы ее декомпилировал и разобрался как она написана т.к. на моем LG половина прог не работает)  , те которые я скачивал - кириллицу не понимают.

Автор: math64 27.12.2010, 08:41
Этот вопрос уже задавался, можно найти поиском.
Теоретически, можно открыть InputStreamReader с указанием кодировки, но как правило, мобильные устройства не значают Cp1251.
Поэтому, нужно сначала считать файл в массив байт, а затем сконвертировть его в Unicode:
Код

static final String rus =
  "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ" +
  "абвгдежзийклмнопрстуфхцчшщъыьэюя";
String from1251(byte[] bytes) {
  char[] chars = new char[bytes.length];
  for(int i=0; i < chars.length; i++) {
    char c = bytes[i];
    if (c > 0xC0) {
      c = rus.charAt(c - 0xC0);
    } else if (c > 0x80) {
      c = '?';
    }
    chars[i] = c;
  }
  return new String(chars);
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)