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

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

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

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


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

0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2016, 03:36
Ответы с готовыми решениями:

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

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

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

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

43
Заблокирован
16.07.2016, 08:15 2
Может загрузить в специальный блокнот(Notepad++), там поменять кодировку и сохранить. Так пойдет?
0
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
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
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.07.2016, 09:11 5
Цитата Сообщение от ASCII Посмотреть сообщение
в любой кодировке
Цитата Сообщение от ASCII Посмотреть сообщение
преобразовывать в utf-8
нет проблемы перегнать в утф-8.
проблема - узнать в какой кодировке исходный текст.
стандартных средств для этого не существует.

Цитата Сообщение от nmcf Посмотреть сообщение
Перекодировка функциями типа MultiByteToWideChar().
исходный текст может быть в какой угодно кодировке.
как MultiByteToWideChar вам поможет?
0
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
16.07.2016, 09:43 6
Цитата Сообщение от hoggy Посмотреть сообщение
проблема - узнать в какой кодировке исходный текст.
над заголовком - тег <meta charset="...">. Можно пробовать меняя кодировки прочесть этот тег и потом спарсить кодировку для использования. Если указана отсутствующая кодировка или есть ошибки кодировки, то по любому это не проблема программы.
1
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.07.2016, 09:48 7
Цитата Сообщение от IGPIGP Посмотреть сообщение
над заголовком - тег <meta charset="...">
ну вот если только парсить заголовок,
а потом похоже, придется сделать свитч-кейс
1
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
16.07.2016, 10:04 8
Цитата Сообщение от hoggy Посмотреть сообщение
исходный текст может быть в какой угодно кодировке.
Из его вопроса не ясно в чём проблема - в определении кодировки или в преобразовании. Я подумал про второе, потому что там про средства преобразования символов упоминается.
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.07.2016, 10:05 9
Цитата Сообщение от nmcf Посмотреть сообщение
Из его вопроса не ясно в чём проблема - в определении кодировки или в преобразовании
и то, и другое очевидно жеж.
1
Ушел с форума
Эксперт С++
16473 / 7436 / 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
2664 / 2239 / 240
Регистрация: 03.07.2012
Сообщений: 8,141
Записей в блоге: 1
16.07.2016, 10:11 12
Цитата Сообщение от hoggy Посмотреть сообщение
исходный текст может быть в какой угодно кодировке.
как MultiByteToWideChar вам поможет?
В чем проблема? MultiByteToWideChar умеет преобразовывать и UTF8 и CP866 и CP1251 и KOI и море других кодировок
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.07.2016, 10:20 13
Цитата Сообщение от zer0mail Посмотреть сообщение
В чем проблема?
преобразуйте мне текст в любой кодировке в утф-8 пожалуйста.
приведите пример кода, как вы это сделаете.
0
Убежденный
16.07.2016, 10:23
  #14

Не по теме:


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

0
2664 / 2239 / 240
Регистрация: 03.07.2012
Сообщений: 8,141
Записей в блоге: 1
16.07.2016, 12:32 15
Цитата Сообщение от hoggy Посмотреть сообщение
преобразуйте мне текст в любой кодировке в утф-8 пожалуйста.
Давайте спросим у ASCII, что он понимал под "любой кодировкой":
а) набор из 4-5 кириллических кодировок, как полагаю я.
б) любую кодировку на Земле (не будем распространять на Вселенную), как, наверное, полагает hoggy.
0
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
16.07.2016, 12:46 16
Цитата Сообщение от zer0mail Посмотреть сообщение
набор из 4-5 кириллических кодировок, как полагаю я.
Виртуальный шовинизмъ (имхо). Пусть будут и не кириллические. Можно выполнить расширяемую прогу (наследованием например). Тут есть строчка:
Цитата Сообщение от ASCII Посмотреть сообщение
html код страницы с сайта
Если страница оформлена правильно, то можно поискать тег с кодировкой, если нет, (и нет набора слов, некоторые из которых обязательно присутствуют в тексте), то нет надёжного решения.
На правах свободной придури:
Прога с искусственным глюкованием интеллектом:
Можно парсить десяток-два слов и отправлять запрос в поисковик, в разных кодировках. По одному слову за раз. Где ответов не равных "по вашему запросу не найдено ни одной ссылки" больше, там и правильная кодировка. Можно и свой расширяемый словарь завести.
Это медленно и ненадёжно. То есть по-человечески.
1
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
16.07.2016, 12:50 17
Цитата Сообщение от zer0mail Посмотреть сообщение
Давайте спросим у ASCII, что он понимал под "любой кодировкой":
в этом нет необходимости.
"любая кодировка" обозначает "любую кодировку".
внезапно.
1
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
16.07.2016, 12:51 18
Цитата Сообщение от IGPIGP Посмотреть сообщение
и отправлять запрос в поисковик, в разных кодировках
Поисковики сами исправляют кодировку, так что это не поможет.
1
Комп_Оратор)
Эксперт по математике/физике
8950 / 4704 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
16.07.2016, 12:57 19
Цитата Сообщение от zss Посмотреть сообщение
Поисковики сами исправляют кодировку, так что это не поможет.
Как я понимаю, поисковик приводит кодировку к кодировке полученной от браузера. То есть, слово (строка) после обработки изменится. Если Вы (прога) угадали кодировку, то она будет соответствовать браузеру и поисковик не должен её менять. Тут много "если". Что и говорить. Потому и написал что с глюкованием. Статистически что-то полезное может выдавать.
1
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
16.07.2016, 13:45 20
Цитата Сообщение от ASCII Посмотреть сообщение
Есть следующая проблема: есть программа, которая загружает html код страницы с сайта. Затем из этого html кода необходимо выдернуть все ссылки. Проблема заключается в том, что html документ может быть сохранен в любой кодировке.
В такой постановке задачи никакой проблемы нет. Первые 128 символов у всех (популярных) восьмибитовых кодировок идентичны, а больше ничего для выдирания <a href=... и не требуется.
0
16.07.2016, 13:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
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
Закрытая тема Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru