|
1 / 1 / 0
Регистрация: 07.05.2020
Сообщений: 22
|
|
Определение кодировки и перевод в UTF-811.10.2021, 08:45. Показов 25730. Ответов 29
Метки нет (Все метки)
Алекс получил от своего друга Никиты из России электронное письмо с вложенным текстовым файлом (не маленьким – точно больше 100Кб) и был удивлен его содержимым. Алекс давно знаком с Никитой и знает, что текст точно на русском языке, что он все пишет в нижнем регистре, и что Никита принципиально не использует никакие кодировки, кроме однобайтовых. Алекс хотел бы определить, какую кодировку Никита использовал (CP866 (DOS), CP1251 (Windows), KOI8R, ISO-8859-5, cp10007(MacOS)), и увидеть первые 2048 символов этого файла в кодировке UTF-8. Воспользуйтесь имеющимися данными, напишите программу, которая будет определять автоматически определять кодировку и выводить первые 2048 символов этого файла в кодировке UTF-8.
Буду очень благодарен) Идей нет совсем
1
|
|
| 11.10.2021, 08:45 | |
|
Ответы с готовыми решениями:
29
Определение кодировки в строке и преобразование ее в UTF-8 Перевод из кодировки UTF - 8 в ANSI
|
| 16.10.2021, 07:28 | |
|
Garry Galler, дал вам главное, алгоритм решения. Вам только осталось написать не сложный код по этому алгоритму.
По этому алгоритму будет определяться кодировка основной массы символов даже для битых файлов и для файлов со смешанной кодировкой.![]() Добавлено через 12 минут Я скопировал этот алгоритм в свою базу данных. Если мне понадобится решить такую задачу, то я использую этот алгоритм, что бы написать код.
0
|
|
|
0 / 0 / 0
Регистрация: 14.10.2021
Сообщений: 4
|
|
| 17.10.2021, 18:40 | |
|
Viktorrus, «Виндосе» — что вы имеете в виду? Слово похоже на «видосе», но по контексту больше подходит «[IBM-совместимый] ПК» (например, в моём случае ASUS VivoBook с (почти не персонализированной) Ubuntu)
0
|
|
| 17.10.2021, 23:28 | |||
Я имел ввиду windows.
Garry Galler, используя кодовые таблицы, показал в каких диапазонах находятся коды символов кириллицы для разных кодировок.
0
|
|||
|
0 / 0 / 0
Регистрация: 19.10.2021
Сообщений: 7
|
|
| 19.10.2021, 02:53 | |
|
Здравствуйте! Подскажите как автоматизировать выбор верной кодировки. Без взаимодействия с пользователем на ум ничего не идет. В сети подходящего решения не нашёл. На большое количество костылей не ругайтесь, я физик, а не программист. Мне просто нужно показать ребенку, что задачи олимпиадного уровня можно решать. Решал с использованием кодировок: cp866, cp1251, ISO-8859-5, koi8-r. Проверял работу программы на текстовых файлах с соответствующей кодировкой. С cp10007 ничего не получилось так как проверял на Linux. Может где исключения надо обработать и лишний код убрать? Решение не жалко, прикладываю.
0
|
|
| 19.10.2021, 13:37 | ||
|
Не по теме:
Вообще то странная постановка. Вы хотите показать то, что и так очевидно. Олимпиадные задачи можно решать, все зависит от таланта и уровня подготовки. Видимо у Вас талант есть, но уровень подготовки у Вас достаточный для решения задач по физике, но в программировании уровень подготовки не достаточный. Вот и объясните Вашему сыну, что для решения олимпиадных задач нужно обладать достаточным уровнем подготовки. И для этого нужно "учиться, учиться, и еще раз учиться".:) Garry Galler, дал алгоритм решения задачи. Что бы написать код, нужен определенный уровень подготовки по программированию.
0
|
||
|
0 / 0 / 0
Регистрация: 14.10.2021
Сообщений: 4
|
||||||
| 23.10.2021, 13:24 | ||||||
|
У меня на Linux получилось
0
|
||||||
| 23.10.2021, 18:47 | ||||||||||||||||
|
Orisphera, Оказалось все дело просто в том, что в задании дано название кодировки, которое не используется по крайней мере в последних версиях питона. В питоне для работы с кодировкой в MacOS вместо устаревшего названия cp10007, теперь используется имя кодировки maccyrillic, в том числе и для питона под windows.
Кликните здесь для просмотра всего текста
![]() Может это задание нужно делать не на питоне, а на ЯП, в котором кодировки имеют указанные в задании названия?
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 19.10.2021
Сообщений: 7
|
||||||
| 23.10.2021, 23:48 | ||||||
|
Благодарю участников форума за помощь в решении задачи. Подскажите пожалуйста, нужно ли оставлять по окончании работы программы файл UTF-8.txt с подтверждением, что выходные данные представлены в кодировке UTF-8? Или необходимо подключать библиотеку OS и удалять этот файл? Каких либо запретов на этот счет не нашел. Код:
0
|
||||||
| 24.10.2021, 13:58 | ||||||||||||
|
Вы молодец, использовали алгоритм предложенный Garry Galler, и написали код. Хочу только дать одно замечание. Таблицы кодировок, особенно кодировок maccyrillic и CP1251 , имеют пересекающиеся области, где коды символов разных кодировок совпадают. Поэтому, если символы рассматриваемого текста находятся в пределах этой области пересечения, то будут подходить сразу несколько кодировок. Как это учитывает тестирующая программа олимпиады, я не знаю. Поэтому я всегда критически отношусь к тестирующим программам. ![]() Кстати теперь, когда известно правильное название кодировки для MAC, то можно использовать и предложенный мной алгоритм: "В цикле подставлять различные кодировки, обрабатывая исключения для не подходящих кодировок и выбрать только те кодировки (в большинстве случаев это будет одна кодировка), для которых не будет возникать исключение. Это и будет искомая кодировка." Добавлено через 18 минут System_Failure, Хотя если задание состоит только в том, что бы перевести исходный файл в кодировку utf-8, то не важно, соответствует ли исходный файл одной кодировке или нескольким (что при длине в 2048 символов маловероятно), выводить информацию о кодировке исходного файла не требуется. В этом случае Ваш код полностью соответствует условию. Добавлено через 14 минут Хотя алгоритм предложенный Garry Galler , а значит и Ваш код, будет работать и с битыми файлами, а мой алгоритм с битыми файлами работать не будет. ![]() Добавлено через 5 часов 25 минут System_Failure, Нашел как можно посмотреть названия кодировок используемых конкретной версией питона. У меня версия 3.8
Кликните здесь для просмотра всего текста
Добавлено через 30 минут Кстати в выводимой по help документации для моего питона указана кодировка только mac_cyrillic , но как я проверил, работают оба названия котировки, как mac_cyrillic , так и maccyrillic . Аналогично и с юникодовской кодировкой. В выводимой документации указано utf_8 , а работают и названия utf-8, utf8, UTF-8. То есть разработчики питона заложили возможность использовать и альтернативные названия кодировок, но в документации это не отразили. Нужно об этом помнить. Однако заранее знать, какие альтернативные кодировки можно использовать, мы не можем. Так для кодировки koi8_r работает и название KOI8-R , но название KOI8R не работает. Поэтому надежнее использовать название кодировки, которое выводит питон по help , а другие альтернативные названия нужно проверять.
0
|
||||||||||||
|
0 / 0 / 0
Регистрация: 14.10.2021
Сообщений: 4
|
|||||||||||
| 24.10.2021, 18:02 | |||||||||||
|
System_Failure, Ваш код можно оптимизировать:
0
|
|||||||||||
| 24.10.2021, 18:02 | |
|
Перевод кодировки из utf-8 в windows-1251 Программа для конвертации тектового файла из кодировки UTF-8 в UTF-16 Разные кодировки файлов (ASCII, UTF-8, UTF-16) Кодировки UTF-8 и UTF-16 Ошибка кодировки UTF-8 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|