С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
99 / 70 / 13
Регистрация: 15.12.2013
Сообщений: 463
1

Работа с кодировками

16.07.2016, 03:36. Показов 3934. Ответов 43
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Есть следующая проблема: есть программа, которая загружает html код страницы с сайта. Затем из этого html кода необходимо выдернуть все ссылки. Проблема заключается в том, что html документ может быть сохранен в любой кодировке. Поэтому, т.к. для себя я выбрал использовать utf-8, мне необходимо эти символы преобразовывать в utf-8.


1) Какие есть стандартные средства для перекодировки символов?
2) Какую литературу можно почитать из области Quick Start? (Кроме Страуструпа, в специальном издании все слишком запутанно)

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.07.2016, 03:36
Ответы с готовыми решениями:

Работа с кодировками файла (АНСИ и ЮТФ-8)
Всем здрасти! Подскажите пожалуйста, каким образом можно реализовать следующее: 1) Как...

Работа с кодировками при чтении файла
Здравствуйте! Пишу программу, одна из задач - реализовать чтение файла с сервера. Использую...

Проблемы с кодировками
Имеется имя файла, считанное с текущей директории (папки Windows). В имени присутствуют пробелы и...

Проблемы с кодировками
есть код system("systeminfo >> qq.txt");...

43
Заблокирован
16.07.2016, 08:15 2
Может загрузить в специальный блокнот(Notepad++), там поменять кодировку и сохранить. Так пойдет?
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
16.07.2016, 08:20 3
Использовать utf-8 для обработки текста - плохое решение. Надо wchar_t брать. Перекодировка функциями типа MultiByteToWideChar().
0
37 / 36 / 9
Регистрация: 16.04.2015
Сообщений: 283
16.07.2016, 08:26 4
По-моему, в этом случае проще и удобнее использовать C#. В нём изменение кодировок встроено.
(ссылки выдираются regex-ом).
0
Эксперт С++
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.07.2016, 09:11 5
Цитата Сообщение от ASCII Посмотреть сообщение
в любой кодировке
Цитата Сообщение от ASCII Посмотреть сообщение
преобразовывать в utf-8
нет проблемы перегнать в утф-8.
проблема - узнать в какой кодировке исходный текст.
стандартных средств для этого не существует.

Цитата Сообщение от nmcf Посмотреть сообщение
Перекодировка функциями типа MultiByteToWideChar().
исходный текст может быть в какой угодно кодировке.
как MultiByteToWideChar вам поможет?
0
Комп_Оратор)
Эксперт по математике/физике
9005 / 4704 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.07.2016, 09:43 6
Цитата Сообщение от hoggy Посмотреть сообщение
проблема - узнать в какой кодировке исходный текст.
над заголовком - тег <meta charset="...">. Можно пробовать меняя кодировки прочесть этот тег и потом спарсить кодировку для использования. Если указана отсутствующая кодировка или есть ошибки кодировки, то по любому это не проблема программы.
1
Эксперт С++
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.07.2016, 09:48 7
Цитата Сообщение от IGPIGP Посмотреть сообщение
над заголовком - тег <meta charset="...">
ну вот если только парсить заголовок,
а потом похоже, придется сделать свитч-кейс
1
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
16.07.2016, 10:04 8
Цитата Сообщение от hoggy Посмотреть сообщение
исходный текст может быть в какой угодно кодировке.
Из его вопроса не ясно в чём проблема - в определении кодировки или в преобразовании. Я подумал про второе, потому что там про средства преобразования символов упоминается.
0
Эксперт С++
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.07.2016, 10:05 9
Цитата Сообщение от nmcf Посмотреть сообщение
Из его вопроса не ясно в чём проблема - в определении кодировки или в преобразовании
и то, и другое очевидно жеж.
1
Ушел с форума
Эксперт С++
16478 / 7441 / 1187
Регистрация: 02.05.2013
Сообщений: 11,617
Записей в блоге: 1
16.07.2016, 10:07 10
Цитата Сообщение от ASCII Посмотреть сообщение
есть программа, которая загружает html код страницы с сайта. Затем из этого html кода необходимо выдернуть все ссылки. Проблема заключается в том, что html документ может быть сохранен в любой кодировке.
По стандарту HTTP, веб-сервер должен указывать кодировку содержимого в заголовке Content-Type.
Например:
Код
Content-Type: text/html; charset=utf-8
Кодировка по умолчанию (т.е. если не указана) - iso-8859-1.

К сожалению, некоторые веб-серверы в Content-Type пишут одно, а в HTML
передают совсем другое.
5
nmcf
16.07.2016, 10:09
  #11

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
и то, и другое очевидно жеж.
Мне нет.

0
2687 / 2259 / 244
Регистрация: 03.07.2012
Сообщений: 8,224
Записей в блоге: 1
16.07.2016, 10:11 12
Цитата Сообщение от hoggy Посмотреть сообщение
исходный текст может быть в какой угодно кодировке.
как MultiByteToWideChar вам поможет?
В чем проблема? MultiByteToWideChar умеет преобразовывать и UTF8 и CP866 и CP1251 и KOI и море других кодировок
0
Эксперт С++
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.07.2016, 10:20 13
Цитата Сообщение от zer0mail Посмотреть сообщение
В чем проблема?
преобразуйте мне текст в любой кодировке в утф-8 пожалуйста.
приведите пример кода, как вы это сделаете.
0
Убежденный
16.07.2016, 10:23
  #14

Не по теме:


Напомнило:
Если у вас есть строка, но вы не знаете, в какой она кодировке - у вас нет этой строки. (c)

0
2687 / 2259 / 244
Регистрация: 03.07.2012
Сообщений: 8,224
Записей в блоге: 1
16.07.2016, 12:32 15
Цитата Сообщение от hoggy Посмотреть сообщение
преобразуйте мне текст в любой кодировке в утф-8 пожалуйста.
Давайте спросим у ASCII, что он понимал под "любой кодировкой":
а) набор из 4-5 кириллических кодировок, как полагаю я.
б) любую кодировку на Земле (не будем распространять на Вселенную), как, наверное, полагает hoggy.
0
Комп_Оратор)
Эксперт по математике/физике
9005 / 4704 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.07.2016, 12:46 16
Цитата Сообщение от zer0mail Посмотреть сообщение
набор из 4-5 кириллических кодировок, как полагаю я.
Виртуальный шовинизмъ (имхо). Пусть будут и не кириллические. Можно выполнить расширяемую прогу (наследованием например). Тут есть строчка:
Цитата Сообщение от ASCII Посмотреть сообщение
html код страницы с сайта
Если страница оформлена правильно, то можно поискать тег с кодировкой, если нет, (и нет набора слов, некоторые из которых обязательно присутствуют в тексте), то нет надёжного решения.
На правах свободной придури:
Прога с искусственным глюкованием интеллектом:
Можно парсить десяток-два слов и отправлять запрос в поисковик, в разных кодировках. По одному слову за раз. Где ответов не равных "по вашему запросу не найдено ни одной ссылки" больше, там и правильная кодировка. Можно и свой расширяемый словарь завести.
Это медленно и ненадёжно. То есть по-человечески.
1
Эксперт С++
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.07.2016, 12:50 17
Цитата Сообщение от zer0mail Посмотреть сообщение
Давайте спросим у ASCII, что он понимал под "любой кодировкой":
в этом нет необходимости.
"любая кодировка" обозначает "любую кодировку".
внезапно.
1
Модератор
Эксперт С++
13727 / 10923 / 6479
Регистрация: 18.12.2011
Сообщений: 29,155
16.07.2016, 12:51 18
Цитата Сообщение от IGPIGP Посмотреть сообщение
и отправлять запрос в поисковик, в разных кодировках
Поисковики сами исправляют кодировку, так что это не поможет.
1
Комп_Оратор)
Эксперт по математике/физике
9005 / 4704 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
16.07.2016, 12:57 19
Цитата Сообщение от zss Посмотреть сообщение
Поисковики сами исправляют кодировку, так что это не поможет.
Как я понимаю, поисковик приводит кодировку к кодировке полученной от браузера. То есть, слово (строка) после обработки изменится. Если Вы (прога) угадали кодировку, то она будет соответствовать браузеру и поисковик не должен её менять. Тут много "если". Что и говорить. Потому и написал что с глюкованием. Статистически что-то полезное может выдавать.
1
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
16.07.2016, 13:45 20
Цитата Сообщение от ASCII Посмотреть сообщение
Есть следующая проблема: есть программа, которая загружает html код страницы с сайта. Затем из этого html кода необходимо выдернуть все ссылки. Проблема заключается в том, что html документ может быть сохранен в любой кодировке.
В такой постановке задачи никакой проблемы нет. Первые 128 символов у всех (популярных) восьмибитовых кодировок идентичны, а больше ничего для выдирания <a href=... и не требуется.
0
16.07.2016, 13:45
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.07.2016, 13:45
Помогаю со студенческими работами здесь

Проблемы с кодировками
Решил переделать свою CMS с win1251 на utf8. Проблема возникает такого рода. Есть например...

Путаница с кодировками
Смотрите, хочу записать какой-то текст в файл на рабочий стол (ОС Windows 7, JDK8). Изначально...

Непонятки с кодировками
База данных MySql у базы Character set: cp1251--Windows Cyrilic, Collation: cp1251_general_ci. В...

Проблема с кодировками
Установил Nuked Klan на сервер, и взялся его переводить (движок французский). Большинство модулей...

Путанница с кодировками
Здравствуйте, буду очень признателен помощи. В общем перед правкой сайта сделал бэкап БД. Потом...

Странность с кодировками в ff
Доброго времени суток. Есть html документ который нормально отображается браузерами commodo dragon...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
Новые блоги и статьи
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru