![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
sg729 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.5.2009 Репутация: 1 Всего: 1 |
Некоторые ссылки html-страницы (в кодировке utf-8) интерфейс IHtmlElement почему-то отображает в кодировке win-1252.
Как преобразовать, например такую строку:
в строку ANSI к виду:
??? Пробовал для начала преобразовать в ANSI с помощью UTF8ToAnsi, Utf8Decode, UTF8ToStrSmart - ничего не получилось. UTF8ToAnsi и Utf8Decode возвращают пустоту, а UTF8ToStrSmart (http://forum.vingrad.ru/forum/topic-133239/anchor-entry1007351/0.html) - знаки вопроса:
|
||||||
|
|||||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 6 Всего: 58 |
Честно говоря, попробовал и легко перевел с помощью UTF8ToAnsi данную страницу Винграда из UTF-8 в ANSI (сохраняя страницу в файл). Может дело в IHtmlElement?
|
|||
|
||||
sg729 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.5.2009 Репутация: 1 Всего: 1 |
Я пробую вот эту страницу: http://images.yandex.ru/yandsearch?text=%D...amp;stype=image Яндекс возвращает utf-8. И в документе, если его сохранить в файл и посмотреть в редакторе, все правильно - например вот так:
Но IHtmlElement почему-то выдает эту ссылку как: about:blank/yandsearch?text=апелÑÑин&isize=wallpaper&rpt=image Очень может быть. Однако некоторые ссылки IHtmlElement все-таки выдает правильно, например:
IHtmlElement выдает как: http://images.google.ru/images?q=%D0%B0%D0...%81%D0%B8%D0%BD Это сообщение отредактировал(а) sg729 - 1.6.2009, 19:15 |
||||||
|
|||||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
юзая такой модуль dzurl и такой код
я получал то что нужно удачи Это сообщение отредактировал(а) Romikgy - 1.6.2009, 20:22 Присоединённый файл ( Кол-во скачиваний: 8 ) ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
sg729 |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.5.2009 Репутация: 1 Всего: 1 |
Спасибо! ![]() Увы, но здесь эта фишка не спасает ![]() Для тега:
функция:
возвращает пустоту. А если посмотреть, что возвращает функция:
то получается такая штука:
Да и по смыслу здесь нужно обратное преобразование, т.е. не UrlDecode, а наоборот UrlEncode - из юникода в "строку с процентами". Но dzurl.UrlDecode конвертит в "проценты" всю строку без разбора. По идее здесь нужно: 1) определить, что в строке есть подстрока utf-8, отображаемая как win-1252 2) отыскать способ как эту подстроку (и всю строку в целом) превратить в ansi |
||||||||
|
|||||||||
Romikgy |
|
||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
покажи что возвращает эта функция Добавлено @ 19:26
по этой строке у мя все работает вот пример что у меня заработал вот ответ
дельфи 7 у мя Это сообщение отредактировал(а) Romikgy - 2.6.2009, 19:28 Присоединённый файл ( Кол-во скачиваний: 6 ) ![]() -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
||||
|
|||||
Romikgy |
|
||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
а если сделать так
тогда ответ вообще хорош
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
||||
|
|||||
sg729 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.5.2009 Репутация: 1 Всего: 1 |
||||
|
||||
sg729 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.5.2009 Репутация: 1 Всего: 1 |
ну, это понятно - ты же даешь на вход строку с "процентами", так и должно получиться. У меня другая проблема - интерфейс IHtmlElement выдает из DOM строку не совсем в UTF-8, а слегка измененную - как будто ее "прожевали" через кодировку win-1252 (точнее через ISO-8859-1, если верить http://2cyr.com/decode/?lang=ru ). А код такой (Delphi 7) :
В TntMemo2 смотри ссылку в которой есть фраза wallpaper - она самая первая с крякозябрами. Еще поставь в свойствах TntMemo2 шрифт Tahoma, иначе не увидишь - MS Sans Serif не переваривает юникодные кодировки. Это сообщение отредактировал(а) sg729 - 2.6.2009, 22:38 |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
имхо товарисчь sg729, у вас смешались и кони и пони .... зачем использовать очень не безопастные переходы юникод в анси стринг и обратно ? только для парсинга?
я так понял задача по получению ссылок хорошо ложится под мой ответ по поднятой теме , но запутались с выше обозначеными переходами , уберите использование интерфейсов и найдите парсер хтмл кода , и уйдут
такие фразы..... -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
sg729 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.5.2009 Репутация: 1 Всего: 1 |
Так ведь и жизнь сложна и разнообразна ![]()
Ссылка типа такой:
к сожалению не открывается ни браузером, ни программным путем. Только из-за этого я пытаюсь привести ее к читабельному виду. Будет ли это ansi или юникод вобщем-то все равно, лишь бы она работала. Желательно, конечно, в ansi, потому что ссылки нужно сохранять в базе данных и заморачиваться с юникодом еще и в базе данных нет желания. Но я не фанатик конкретной кодировки, мне нужен конечный результат, а именно: собрал ссылки со страницы, выбрал нужные и открыл их - и так далее. Буду благодарен за подсказку на тему где найти бесплатный парсер, не уступающий по качеству IE или FireFox ![]() Это сообщение отредактировал(а) sg729 - 3.6.2009, 10:20 |
||||
|
|||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
http://www.delphisources.ru/pages/sources/...tml_parser.html
http://www.daniweb.com/forums/thread64972.html http://pblog.ru/?p=108 http://www.torry.net/pages.php?id=216 + http://www.google.com.ua/search?hl=ru&...D0%BA&meta= Это сообщение отредактировал(а) Romikgy - 3.6.2009, 15:44 -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
sg729 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.5.2009 Репутация: 1 Всего: 1 |
Благодарю!
![]() Надеюсь, эти парсеры найдут ровно столько же ссылок, сколько выдает DOM ![]() Это сообщение отредактировал(а) sg729 - 3.6.2009, 21:53 |
|||
|
||||
sg729 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 17.5.2009 Репутация: 1 Всего: 1 |
Попробовал 7 разных парсеров, ни один не устроил - в лучшем случае ищут "узлы", готовую коллекцию ссылок не дают.
Почитал обзор по парсерам: http://december.nm.ru/DelphiHTMLParsers.htm и мнение автора обзора здесь: http://forum.vingrad.ru/forum/topic-40148/unread-1.html#
и понял, что искать решение в бесплатных парсерах нет смысла ![]() |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 3 Всего: 146 |
тогда сочетай (правильно) уже имеющееся
![]() кса объясни на пальцах что выдает а то это интерфейсы как я понял от броузера и что за набор методов нужен для парсинга? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |