powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Возможна ли правильная загрузка локализованных данных из ANSI файла
19 сообщений из 19, страница 1 из 1
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38775389
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем нужно из ANSI файла достать локализованные данные и преобразовать их в строку.
Делаю так:

Код: java
1.
2.
3.
4.
FileInputStream fi = new FileInputStream(fileLoad);
byte[] buf = new byte[(int) fileLoad.length()];

String s = new String(buf, "windows-1251");



В строке вижу нормально прочитанные русские буквы. Проблема в том что в файле могут быть н-р немецкие или другие локальные данные. В общем я не знаю как сопоставить языку системы нужные данные для перекодировки - "windows-1251".
Пробовал String s = new String(buf); язык системы был русский - но преобразовалось неправильно - т.е. по умолчанию нормально в локальную версию языка не преобразовывает.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38775402
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерский, в таком случае используется юникод.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38775405
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола Питерский, в таком случае используется юникод.

Ну UTF-8 файл я попробовал - работает с ним нормально. Но задача стоит именно разобрать ANSI. В Windows н-р без проблем такое можно сделать загрузив данные без указания перекодировки - если винда русская и в файле ANSI русский - то перекодируется без проблем.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38775412
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андроид юникодный более полноценно, чем винда. Вечно стереотипами мыслишь (я про дельфи и винду), вредно это для программиста...

https://www.google.ru/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#newwindow=1&q=android detect codepage
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38775430
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanАндроид юникодный более полноценно, чем винда. Вечно стереотипами мыслишь (я про дельфи и винду), вредно это для программиста...


Не знаю о чем ты - но я до сих пор юзаю Delphi2010 - это юникоидная версия, Windows 2000 и все последующие версии полностью поддерживают юникод, кроме того в винде н-р можно сделать так: у тебя винда немецкая а ты хочешь загрузить ANSI файлик в котором русские данные - ты можешь указать в настройках винды что хочешь открывать все ANSI файлы как русскоязычные и все будет нормально перекодироваиться.

А в андроиде я сразу на этом обломился - 2 часа гугления ни к чему не привели.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38775494
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерский
А в андроиде я сразу на этом обломился - 2 часа гугления ни к чему не привели.
Ну вот, секунда гугления и ответ найден. :-)
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38775527
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanНу вот, секунда гугления и ответ найден. :-)

Ты задал гуглу некорректный вопрос "определить кодировку файла" и получил ссылки, которые ничего не дают т.к. в файле ANSI изначально кодировка нигде не задается и автоматически ее определить нельзя и кодировку которую андроид опрелеляет на файле ANSI это UTF-8, соответсвенно он его и не правильно перекодирует.

В андроиде есть таблица кодировок Charset.availableCharsets() - вот я ее и пытаюсь задействовать.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38775539
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийТы задал гуглу некорректный вопрос "определить кодировку файла" и получил ссылки, которые ничего не дают т.к. в файле ANSI изначально кодировка нигде не задается и автоматически ее определить нельзя
Шутишь чтоль? http://illegalargumentexception.blogspot.co.uk/2009/05/java-rough-guide-to-character-encoding.html#javaencoding_autodetect несколько ссылок на эту библиотеку...

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
byte[] thisAppCanBreak = "this app can break"
        .getBytes("ISO-8859-1");
    CharsetDetector detector = new CharsetDetector();
    detector.setText(thisAppCanBreak);
    String tableTemplate = "%10s %10s %8s%n";
    System.out.format(tableTemplate, "CONFIDENCE",
        "CHARSET", "LANGUAGE");
    for (CharsetMatch match : detector.detectAll()) {
      System.out.format(tableTemplate, match
          .getConfidence(), match.getName(), match
          .getLanguage());
    }


output
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CONFIDENCE    CHARSET LANGUAGE
        63 ISO-8859-2       hu
        47 ISO-8859-9       tr
        47 ISO-8859-1       nl
        47 ISO-8859-1       en
        31 ISO-8859-2       ro
        31 ISO-8859-1       fr
        15 ISO-8859-1       sv
        15 ISO-8859-1       pt
        15 ISO-8859-1       es
        15 ISO-8859-1       da
        10       Big5       zh
        10     EUC-KR       ko
        10     EUC-JP       ja
        10    GB18030       zh
        10  Shift_JIS       ja
        10      UTF-8     null


Или у тебя гугл адаптирован не на ту выдачу, которая у меня. Читай как "другой гугл".
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38775925
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, я эту ссылку смотрел и пытался сделать - но андроид понятия не имеет что такое:
Код: java
1.
CharsetDetector detector = new CharsetDetector();



Неужели в жаве нет таких функций для конвертирования как AnsiToUTF - в делфи их полно и работают отлично.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38775961
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийя эту ссылку смотрел и пытался сделать - но андроид понятия не имеет что такое:
Естественно, ведь речь о сторонних библиотеках.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38775968
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийНеужели в жаве нет таких функций для конвертирования как AnsiToUTF - в делфи их полно и работают отлично.
В яве есть всё. http://www.tutorialspoint.com/java/java_string_getbytes.htm
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38776004
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanМикола ПитерскийНеужели в жаве нет таких функций для конвертирования как AnsiToUTF - в делфи их полно и работают отлично.
В яве есть всё. http://www.tutorialspoint.com/java/java_string_getbytes.htm

Знаю эту функцию - но опять же для перекодировки нужно САМОМУ указывать кодировку, поддерживает эта функция работу и без параметра, тогда берется кодировка по умолчанию - для андроида это UTF-8.
Т.е. единственный вывод - анроид без указания кодировки умеет работать только с UTF-8, возможности переконвертирования автоматом исходя из языка, установленного в системе у него нет. Самому добраться до таблички соответствия кодировки и языков системы мне не удалось. Остается предлагать в настройках программы самому пользователю написать "кодировку символов" для возможности чтения ANSI данных - т.е. русскоязычный пользователь погуглит и там укажет "windows-1251", немец что-то другое и т.д.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38776030
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийСамому добраться до таблички соответствия кодировки и языков системы мне не удалось.
У меня иногда складывается впечатление, что я впустую привожу ссылки... Возможна ли правильная загрузка локализованных данных из ANSI файла
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38776069
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanУ меня иногда складывается впечатление, что я впустую привожу ссылки... Возможна ли правильная загрузка локализованных данных из ANSI файла

Смотрел я ту библиотеку - но она вовсе не для того что мне нужно. Та библиотека - это интелектуальное определение кодировки по тексту письма и поддерживает далеко не все языки мира и она не сможет определить кодировку по ограниченному набору слов.

Мне нужно узнать н-р андроид рускоязычный Locale.getDefault() возвращает "ru_RU" и я знаю что такому языку для ANSI соответствует кодировка "windows-1251", задача - узнать эту кодировку для другого любого языка мира. В каждой операционке есть таблица соответствия этих кодировок - покрайней мере в виндовсе это труда не составляет, как это сделать в андроиде?
Подозреваю что в андроиде эта таблица лежит здесь: Charset.availableCharsets() но прочитать его мне не получилось.
Все примеры для жавы по перекодировке в андроиде не работают - подозреваю что жава когда-то была не юникоидной и примеры устарели.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38776126
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийВ каждой операционке есть таблица соответствия этих кодировок - покрайней мере в виндовсе это труда не составляет, как это сделать в андроиде?
Не туда тебя понесло... Как в винде понять, что такое en_us в линуксе? Это лишь разные названия кодировок и я что-то не встречал кода перевода. Попробуй составить таблицу соответствия сам.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38776269
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем собственную таблицу перекодировок составить не реально. А вот вынести запрос кодировки в настройки программы - это самое то и если подумать то так даже удобней чем это сделано в виндовс - т.к. тогда каждое приложение в андроид может обрабатывать ANSI данные для разных языков, а виндовсе можно установить только один язык для всех приложений.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38776372
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
опять непонятные велосипеды.
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38776389
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джибс, ну так подскажи - как правильно!
...
Рейтинг: 0 / 0
Возможна ли правильная загрузка локализованных данных из ANSI файла
    #38776442
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийДжибс, ну так подскажи - как правильно!
задачу опиши.

а то вижу какие файлики. зачем.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Возможна ли правильная загрузка локализованных данных из ANSI файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]