|
Не получается с кодировкой
|
|||
---|---|---|---|
#18+
Хочу скачать (програбать) всю базу данных городов Украины. Пользуюсь WinHttpRequest. Раньше не подводил. Грабаю отсюда Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Разобрал HTML код до первого слова, которое хотел сохранять и наткнулся на кодировку. Ковырял, ковырял. Ничего не получилось. Решил сам переконвертировать. A ?IIEOUE A IAEANOU =ВІННИЦЬКА ОБЛАСТЬ Изобретение собственного конвертора не дает результата так как первый символ chr(65) = "В" и девьятый символ также chr(65), но ="А" Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Не вышло. Кодировку вроде бы правильно задал. Может неверно objWinHttp.setRequestHeader "Accept-Charset", "Windows-1251" игнорирует, или сервер... На ноуте сейчас нет программы-прослушки TCP:80 HTML (Не вижу запросов и ответов) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 16:21 |
|
Не получается с кодировкой
|
|||
---|---|---|---|
#18+
времья жалко. попробую еще быстренько на IE сделать если вспомню куда модуль положил готовый. вопрос интересует и дальше "почему" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 16:25 |
|
Не получается с кодировкой
|
|||
---|---|---|---|
#18+
Надо работать с юникодом Посмотри и используй функции ChrW и AscW ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 16:40 |
|
Не получается с кодировкой
|
|||
---|---|---|---|
#18+
Мне просто удивительно, что символы один к одному. Я с кодировкой несколько раз стыкался. Понимаю когда два символа идут как за один, или когда есть chr(3), chr(4)... которые говорят о том что после этого кода нужно декодировать в конкретной системе и также еще два символа даются. А тут один в один. Решил через replace и наткнулся на "да ну его нафиг". Нашел старенький IE и все заработало, правда медленней. Код: vbnet 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 16:46 |
|
Не получается с кодировкой
|
|||
---|---|---|---|
#18+
Ты просто принимаешь текст в юникоде, Replace прекрасно справляется с заменой юникода, но надо ему правильное задание дать, с помощью ChrW, а не с помощью Chr ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 17:03 |
|
Не получается с кодировкой
|
|||
---|---|---|---|
#18+
я сам в коде запутался. Первый символ и девьятый просто одинаковы приходят а на самом деле разные я начал с ConvertToWinTxt = Replace(ConvertToWinTxt, Chr( 65 ), " В ") ConvertToWinTxt = Replace(ConvertToWinTxt, Chr(63), "І") ConvertToWinTxt = Replace(ConvertToWinTxt, Chr(73), "Н") ConvertToWinTxt = Replace(ConvertToWinTxt, Chr(69), "И") ConvertToWinTxt = Replace(ConvertToWinTxt, Chr(79), "Ц") ConvertToWinTxt = Replace(ConvertToWinTxt, Chr(85), "Ь") ConvertToWinTxt = Replace(ConvertToWinTxt, Chr(69), "К") следующий символ получился бы снова ConvertToWinTxt = Replace(ConvertToWinTxt, Chr( 65 ), " А ") А с юникодом как ? Есть байт как не крути. Разве в as String может быть еще что-то вместо того ж байта ? Знаю что может быть два байта который тогда можно конвертировать в один. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 17:39 |
|
Не получается с кодировкой
|
|||
---|---|---|---|
#18+
В стринге может быть юникод (два байта на символ). Как только ты пытаешься его вывести на экран или в контрол, он автоматом конвертируется в Win. Можно вывести его, например, в Ворд, тогда он останется в юникоде. Можно просматривать его с помощью AscW. (ЗЫ: я просто предполагаю, что это юникод, может это что-то другое. Что написано в полученном html-файле, какая кодировка в заголовке? Так или иначе, можно попробовать решить проблему с помощью Replace+ChrW, предварительно проанализировав с помощью AscW) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 17:50 |
|
Не получается с кодировкой
|
|||
---|---|---|---|
#18+
Андрей159, правда не VB, а VBA: Код: vbnet 1. 2. 3. 4.
ЗЫ: "лишние" пробелы - издержки конвертирования символа табуляции. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 23:33 |
|
Не получается с кодировкой
|
|||
---|---|---|---|
#18+
Большое Спасибо. К концу дня домучил. Получил проиндексированную базу: область->район->город (-> = подчиненная таблица) Есть сайты, где за готовую базу предлогают 25$. Пришлось хорошенько потрепаться чтоб накопить самостоятельно свою базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2013, 23:53 |
|
|
start [/forum/topic.php?fid=60&msg=38353304&tid=2156828]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 397ms |
0 / 0 |