powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Про кодировку из cp866 в utf8
25 сообщений из 77, страница 2 из 4
Про кодировку из cp866 в utf8
    #39467170
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЗависит от настроек редактора, но шанс, что это будет CP866 - практически нулевой.
настройки редактора я задать могу - пусть это utf8
что ожидать тогда?
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467172
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяначну искаить , к примеру , строку , набранную в ide-кудакторе , лалалал
Понимания что из себя представляет "кодировка" не прибавится.
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467174
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а все понимают какие вопросы остались у автора?
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467176
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczонимания что из себя представляет "кодировка" не прибавится.
не спорю, но что ожидать и как быть?
надо привести к одной и той-же "кодировке", одному набору символов.
т.е. надо привести неизвестно что к utf8
как быть?
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467177
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяон и OEM может отобразить - если выставить шрифт terminal1. oem2ansi/ansi2oem было в винде уже тогда, когда в винде ещё не было никакого юникода.
2. Все поддерживаемые кодировки отображаются без смены шрифта. Чувствуете разницу?вот и и спрашиваю...Задачу какую решаете? Поиск?
Основных подходов три:
1. Использовать возможности рантайма для работы со строками. Требуется перекодировать входные байты штатным функционалом;
2. Использовать универсальную кодировку. Требуется реализовать то, что уже умеет рантайм;
3. Использовать кодировку того текста, в котором ведётся поиск. Требуется реализовать то, что уже умеет рантайм, помножив геморрой на число поддерживаемых кодировок.
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467190
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov1. oem2ansi/ansi2oem было в винде уже тогда, когда в винде ещё не было никакого юникода.
2. Все поддерживаемые кодировки отображаются без смены шрифта. Чувствуете разницу?
я и говорю - может отобразить. т.е. найдено соответствие между кодом и отображаемым избражением соответствующему этому коду. код-изображение(картинка) и задаёт шрифт.
Basil A. SidorovОсновных подходов три:
1. Использовать возможности рантайма для работы со строками. Требуется перекодировать входные байты штатным функционалом;
2. Использовать универсальную кодировку. Требуется реализовать то, что уже умеет рантайм;
3. Использовать кодировку того текста, в котором ведётся поиск. Требуется реализовать то, что уже умеет рантайм, помножив геморрой на число поддерживаемых кодировок.
хорошие рекоммендации.
а как их применить к конкретному случаю?
мой вариант чтения и
Код: java
1.
2.
String text = FileUtils.readFileToString(file, "cp866");
FileUtils.writeStringToFile(anotherFile, "UTF-8");


позволяют записать "читабельные" файлы в разных "кодировках"
т.е. с "кодировкой" исходного файла разобрались.
вопрос остался - как организовать поиск?
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467198
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry.а все понимают какие вопросы остались у автора?
Нет.
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467201
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадявопрос остался - как организовать поиск?
Есть всякие либы. Единственная проблема в том что для однобайтовых кодировок очень желательно знать язык файла.
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467202
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczDmitry.а все понимают какие вопросы остались у автора?
Нет.
если что прочитано - неизвестно, как быть?

Basil A. SidorovНеизвестно, т.к. String - базовый (и обязательный) тип Java SE API.
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467203
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovmaytonВот если взять xml - то его спека однозначно и жестко определяет хедерДа неужели?
Допустим, что никто ничего не накосячил. Вы знаете способ без ошибок прочитать заголовок xml-файл с кодировкой UTF16LE/UTF16BE?
Я понял. Вы имеете в виду что в стеке проверок сначала идет BOM, а потом интерпретация <?xml encoding="..." ?
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467204
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczЕсть всякие либы. Единственная проблема в том что для однобайтовых кодировок очень желательно знать язык файла.
русские и возможно латинские символы
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467225
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяBlazkowiczЕсть всякие либы. Единственная проблема в том что для однобайтовых кодировок очень желательно знать язык файла.
русские и возможно латинские символы
Давай порассуждаем откуда вообще в приложения приходят сведенья о кодировках.
1) Из http-header. Здесь как-бе все просто. Есть твой сервак. И ты сам решил что весь контент - например в utf-8

https://www.w3.org/International/articles/http-charset/index

2) Из настроек приложения. Тут как-бе тоже все ясно. Есть программный комплекс. Ты - его конфигуратор.
И решил что для предприятия и его документооборота будет юзаться отчетность и загрузки в формате *.txt с кодировкой 1251.
И НИИБЕТ. А все кто не согласны идут в сад. Или со слезами на глазах просят тебя-же оказать помощь в перекодировке

Тоже самое - настройки JDBC/OCI. Создал базячку в CL8WSWIN1251. Впиндюрил ее везде где только можно
у пользователях - и сиди себе пей чай.

3) Из операционки. Если ты почитатель Пингвина Тукса. То ты навреное создавал дохрена текстовых файлов
или конфигов прямо в консоли. При этом будет задействована базовая кодировка ОС которая прошита как
умолчательная (где-то). В системных параметрах или в пользовательских или в текущей консоли. Неважно.
Вобщем сел. Забил конфиг. И НИИБЕТ в чем. Главно дело что Пигвин ее 100% знает ибо родная.

4) И есть наверное алгоримы распознавания кодировок. Вангую что все создатели поисковых ботов
и краулеров и индексирующих серверов типа yandex, google, yahoo решали эту задачу.
Есть дохрена сайтов которые не отдают кодировку и некорректно сетят ее в <meta charset="...."
В лихие 2000-е я часто получал кракозябры в браузерах. Думаю вы - тоже.

Какие либы для детектирования - ХЗ. Надо искать.
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467230
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ понял. Вы имеете в виду что в стеке проверок сначала идет BOM, а потом интерпретация <?xml encoding="..." ?BE/LE - это без маркера порядка байтов. С BOM не лучше, но без него - проблема нагляднее: нужно знать кодировку, чтобы прочитать какая кодировка используется.
Прикол с unzip.zip помните?
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467250
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
если копнуть историю, то файлы с которыми придётся работать формируются программым обеспечением тех времен, когда слово браузер ещё знали только отдельные личности.
поэтому тут - как бы ну....
и как я сказал - с кодировкой разобрались - писать получается , в разных кодировках.
вопрос - как привести к одному знаменателю -набранное в редакторе и прочитанное, чтоб распарсить полученное при чтении из файла.
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467260
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скорее надо выложить сюда файл... тогда всем будет ясно в чем вопрос...

кстати всем доброго!
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467261
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяи как я сказал - с кодировкой разобрались - писать получается , в разных кодировках.
вопрос - как привести к одному знаменателю -набранное в редакторе и прочитанное, чтоб распарсить полученное при чтении из файла.
А за это, мой дорогой друг мы и получаем деньги Я имею в виду синтез решений.
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467276
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА за это, мой дорогой друг мы и получаем деньги Я имею в виду синтез решений.вот и хочется получать за рабочий код.
вот такая конструкция
t
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
ry (FileInputStream fin = new FileInputStream("xxxx.txt")) {
            byte[] buffer = new byte[fin.available()];
            fin.read(buffer, 0, fin.available());
            sss = new String(buffer, "cp866");
            System.out.println(" --------- " + sss.indexOf("ЛАЛАЛА"));
//            System.out.println(sss);
        } catch (IOException ex) {
            ex.printStackTrace();
        }

находит...
но вот это
Basil A. SidorovНеизвестно, т.к. String - базовый (и обязательный) тип Java SE API
как-то не понятно что получилось
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467281
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты можешь объяснить как работает этот фрагмент кода?

Код: java
1.
byte[] buffer = new byte[fin.available()];
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467287
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Код: plaintext
1.
2.
3.
4.
5.
6.
Returns an estimate of the number of remaining bytes that can be read (or skipped over) from this input 
stream without blocking by the next invocation of a method for this input stream. Returns 0 when the file position is 
beyond EOF. The next invocation might be the same thread or another thread. A single read or skip of this many bytes
 will not block, but may read or skip fewer bytes.
In some cases, a non-blocking read (or skip) may appear to be blocked when it is merely slow, for example when reading large files over slow networks.
Возвращает:
an estimate of the number of remaining bytes that can be read (or skipped over) from this input stream without blocking.
грубо - сколько надо памяти под файл
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467293
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя..... грубо - сколько надо памяти под файл
Вот это верно сказано. ГРУБО !
Правда желательно: грубо и матом.
Тогда толку будет больше
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467298
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно, а в школе еще такой предмет как "информатика" остался?
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467306
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя, я не это хотел услышать.

Твой алгоритм (а это скорее всего твой) должен найти слово "ЛАЛАЛА" в текстовом файле. Верно?

Для того чтобы он корректно отработал. Мы должны гарантировать что fin.available() будет равно File.length()
иначе мы что-то упустим или разрежем эту фразу на две части и как следствие не получим позитивный
кейс даже в том случае когда ЛАЛАЛА действительно есть внутри файла.

Скажи пожалуйста ты тестировал этот код на реально больших файлах (десятки и сотни мегабайт)?
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467313
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
ну не надо считаьб меня лохом.
конечно я знаю облать применения такого , и файлы в десятки и сотни метров он не готов тянуть.
есть реальные размеры файлов в единицы метров.
которые такой метод кушает без проблем.
на файле 1++мег я протестировал.
это не окончательное решение , есть вариант и построчного чтения,
и пока выбирается оптимальный вариант .
на данном этапе стоит(стоял) вопрос с кодировкой.
Leonid KudryavtsevИнтересно, а в школе еще такой предмет как "информатика" остался?
это к чему такие высказывания?
предлагаешь задавать размер наугад?
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467315
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяmayton,
ну не надо считаьб меня лохом.
конечно я знаю облать применения такого , и файлы в десятки и сотни метров он не готов тянуть.
есть реальные размеры файлов в единицы метров.
которые такой метод кушает без проблем.
на файле 1++мег я протестировал.
это не окончательное решение , есть вариант и построчного чтения,
и пока выбирается оптимальный вариант .
на данном этапе стоит(стоял) вопрос с кодировкой.
Я этого не говорил.

Тебе Блажкович дал коробочное решение 20544071 . Которое работает и проверено. Но ты зачем-то захотел
конвертить через байтовые массивы. Зачем?
...
Рейтинг: 0 / 0
Про кодировку из cp866 в utf8
    #39467317
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМы должны гарантировать что fin.available() будет равно File.length()
это будет гарантировано. это не абстрактное чтение.
...
Рейтинг: 0 / 0
25 сообщений из 77, страница 2 из 4
Форумы / Java [игнор отключен] [закрыт для гостей] / Про кодировку из cp866 в utf8
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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