|
1 / 1 / 0
Регистрация: 07.05.2020
Сообщений: 22
|
|
Определение кодировки и перевод в UTF-811.10.2021, 08:45. Показов 25570. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|