99 / 70 / 13
Регистрация: 15.12.2013
Сообщений: 455
|
|
1 | |
Работа с кодировками16.07.2016, 03:36. Показов 3711. Ответов 43
Метки нет (Все метки)
Всем привет.
Есть следующая проблема: есть программа, которая загружает html код страницы с сайта. Затем из этого html кода необходимо выдернуть все ссылки. Проблема заключается в том, что html документ может быть сохранен в любой кодировке. Поэтому, т.к. для себя я выбрал использовать utf-8, мне необходимо эти символы преобразовывать в utf-8. 1) Какие есть стандартные средства для перекодировки символов? 2) Какую литературу можно почитать из области Quick Start? (Кроме Страуструпа, в специальном издании все слишком запутанно)
0
|
16.07.2016, 03:36 | |
Ответы с готовыми решениями:
43
Работа с кодировками файла (АНСИ и ЮТФ-8) Работа с кодировками при чтении файла Проблемы с кодировками Проблемы с кодировками |
Заблокирован
|
|
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 |
нет проблемы перегнать в утф-8.
проблема - узнать в какой кодировке исходный текст. стандартных средств для этого не существует. исходный текст может быть в какой угодно кодировке. как MultiByteToWideChar вам поможет?
0
|
Комп_Оратор)
|
|
16.07.2016, 09:43 | 6 |
над заголовком - тег <meta charset="...">. Можно пробовать меняя кодировки прочесть этот тег и потом спарсить кодировку для использования. Если указана отсутствующая кодировка или есть ошибки кодировки, то по любому это не проблема программы.
1
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
16.07.2016, 09:48 | 7 |
ну вот если только парсить заголовок,
а потом похоже, придется сделать свитч-кейс
1
|
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
|
|
16.07.2016, 10:04 | 8 |
Из его вопроса не ясно в чём проблема - в определении кодировки или в преобразовании. Я подумал про второе, потому что там про средства преобразования символов упоминается.
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
16.07.2016, 10:05 | 9 |
1
|
Ушел с форума
|
|
16.07.2016, 10:07 | 10 |
По стандарту HTTP, веб-сервер должен указывать кодировку содержимого в заголовке Content-Type.
Например: Код
Content-Type: text/html; charset=utf-8 К сожалению, некоторые веб-серверы в Content-Type пишут одно, а в HTML передают совсем другое.
5
|
nmcf
|
16.07.2016, 10:09
#11
|
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
16.07.2016, 10:20 | 13 |
преобразуйте мне текст в любой кодировке в утф-8 пожалуйста.
приведите пример кода, как вы это сделаете.
0
|
Убежденный
|
16.07.2016, 10:23
#14
|
Не по теме:
0
|
16.07.2016, 12:32 | 15 |
Давайте спросим у ASCII, что он понимал под "любой кодировкой":
а) набор из 4-5 кириллических кодировок, как полагаю я. б) любую кодировку на Земле (не будем распространять на Вселенную), как, наверное, полагает hoggy.
0
|
Комп_Оратор)
|
|
16.07.2016, 12:46 | 16 |
Виртуальный шовинизмъ (имхо). Пусть будут и не кириллические. Можно выполнить расширяемую прогу (наследованием например). Тут есть строчка:
Если страница оформлена правильно, то можно поискать тег с кодировкой, если нет, (и нет набора слов, некоторые из которых обязательно присутствуют в тексте), то нет надёжного решения. На правах свободной придури: Прога с искусственным Можно парсить десяток-два слов и отправлять запрос в поисковик, в разных кодировках. По одному слову за раз. Где ответов не равных "по вашему запросу не найдено ни одной ссылки" больше, там и правильная кодировка. Можно и свой расширяемый словарь завести. Это медленно и ненадёжно. То есть по-человечески.
1
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
16.07.2016, 12:50 | 17 |
в этом нет необходимости.
"любая кодировка" обозначает "любую кодировку". внезапно.
1
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
|
|
16.07.2016, 12:51 | 18 |
1
|
Комп_Оратор)
|
|
16.07.2016, 12:57 | 19 |
Как я понимаю, поисковик приводит кодировку к кодировке полученной от браузера. То есть, слово (строка) после обработки изменится. Если Вы (прога) угадали кодировку, то она будет соответствовать браузеру и поисковик не должен её менять. Тут много "если". Что и говорить. Потому и написал что с
1
|
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
|
|
16.07.2016, 13:45 | 20 |
В такой постановке задачи никакой проблемы нет. Первые 128 символов у всех (популярных) восьмибитовых кодировок идентичны, а больше ничего для выдирания <a href=... и не требуется.
0
|
16.07.2016, 13:45 | |
16.07.2016, 13:45 | |
Помогаю со студенческими работами здесь
20
Проблемы с кодировками Путаница с кодировками Непонятки с кодировками Проблема с кодировками Путанница с кодировками Странность с кодировками в ff Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |