Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
День добрый. Delphi XE5, Windows 8,10. Есть небольшой код парсинга HTML страницы. При выводе данных по выбранному тэгу в Мемо - теряется большая русская Р, вместо нее ромбик со знаком вопроса. так на всех сайтах с UTF-8... Подскажите, пожалуйста, что не так и где не так? Для запроса страницы использую TidHTTP, для парсинга IHTMLDocument2. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Код обработки тэга и показ в Мемо: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 13:13 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 13:16 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
sasha27, Код: pascal 1. 2. По документации BSTR это уже Unicode строка, причём из WCHAR. Ты уверен что её надо перекодировать из UTF8?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 16:14 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
alekcvp sasha27, Код: pascal 1. 2. По документации BSTR это уже Unicode строка, причём из WCHAR. Ты уверен что её надо перекодировать из UTF8?.. Без перекодировки Мемо отображает "кракозябры"... (( Новости Видео РџСЂСЏРјРѕР№ эфир Новости Видео РџСЂСЏРјРѕР№ эфир ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 16:38 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
sasha27, Попробуй тогда sTXT объявить как RawByteString. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 16:53 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
alekcvp, Заменил на RawByteString, та же песня, большая русская Р не отображается, на некоторых страницах теряются кавычки двойные )). Это относится к страницам с UTF8 кодировкой, где "charset=windows-1251" все нормально... (( ссылка на проект... если не трудно кому, может глянут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 17:12 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
Отлаживайся. Такое впечатление, что эти сайты либо что-то неправильно отдают, либо бы где-то портишь память. Твои пляски с бубном вокруг вариантов при получении выглядят чертовски подозрительно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 17:21 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Использую модуль MSHTML в uses и IHTMLDocument2 интерфейс. Дмитрий, посмотрите, пожалуйста, под спойлером procedure TForm1.bGetTagClick так 5 строчек всего... Выбираю что запрашивать - с тегами или без тэгов текст, потом конвертация с добавление строки в Мемо... фсе... и такая вот ситуевина... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 17:53 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
sasha27, Вам надо определить кодировку страницы сразу после её получения и в случае UTF8 сделать вот так: Код: pascal 1. Потому что в вашем случае Content ничего не знает о кодировке и по-умолчанию всегда считает её Win-1251, откуда и растут ноги у глюков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 18:14 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 18:17 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
alekcvp, Спасибо тебе, добрый человек! Сам бы не дошёл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 18:45 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
sasha27под спойлером *procedure TForm1.bGetTagClick* так 5 строчек всего... И в этих пяти строчках три ошибки... Не надо использовать TStringStream - он может портить содержимое кривым перекодированием. Не надо плясать с вариантами - они вообще непредсказуемы. Неужели так трудно посмотреть глазками на принятое содержимое страницы на каждой стадии чтобы определить где оно портится?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 18:49 |
|
||
|
Delphi, парсинг страницы, UTF8ToString - теряется русская Р
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Дмитрий, спасибо за направление )) При всем уважении, alekcvp помог кратко и ёмко )), с «засечкой» на полях! Всем здоровья и успехов! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2021, 22:18 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2037278]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
175ms |
get topic data: |
11ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 290ms |

| 0 / 0 |
