ELForcer
Сижу only Hard & Soft
offline
Опыт:
1,593Активность: |
UrlUnescape Function в Delphi
Нашел такую функцию для раскодировки символов вида %u0438:
Код:
Описание функции Вопросы такие: 1. В переменную pcchUnescaped нужно задавать количество символов в закодированном виде или число сколько надо раскодировать? То есть в закодированном виде %u0438 будет 6 символов, а в раскодированном 1. 2. Чему равны флаги URL_DONT_UNESCAPE_EXTRA_INFO и URL_UNESCAPE_INPLACE ? Имеется ввиду под этими константами скрыты числа. Если кто то работал с этой функцией буду благодарен за рабочий пример. Если же нет придется тыкаться самому. |
26.05.2010, 23:02 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
2.
3.
|
27.05.2010, 08:26 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELForcer
Сижу only Hard & Soft
offline
Опыт:
1,593Активность: |
Ругается на переменную @len: Types of actual and formal var parameters must be identical.
Без собачки запускается но при раскодировки ругается и всё равно ничего не преобразует. Код:
С uses ShLwApi; Тоже не работает. Даже если кинуть в корневой каталог. Отредактировано ELForcer, 27.05.2010 в 11:51. |
27.05.2010, 11:42 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Подключи модуль Windows (если не подключен), там есть декларация:
В архиве лежит пример. |
27.05.2010, 12:27 | #4
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELForcer
Сижу only Hard & Soft
offline
Опыт:
1,593Активность: |
Хм. Странно. Твой пример не конвертирует %u0438. Ладно это тоже пригодится, спасибо.
Если можешь помочь есть еще один код с которым тоже не разобрался Код:
После преобразования вылазит число. Теперь вопрос: Как его преобразовать в соответствующий символ? |
27.05.2010, 12:30 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShadoW DaemoN
offline
Опыт:
37,078Активность: |
Так у тебя код написан уже, в wc будет символ в формате юникода. Сконвертировать в строку можно функцией WideCharToString():
Выкрутас с PChar(...)^ нужен, чтобы явно привести к однобайтовому символу. Если написать просто WideCharToString(wc), то в строке str окажется два одинаковых символа. |
27.05.2010, 19:10 | #6
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELForcer
Сижу only Hard & Soft
offline
Опыт:
1,593Активность: |
ShadoW DaemoN, спасибо, завтра попробую. Я пока просто подобрал код символа, вычев 848 (или не помню сколько уже). Проверил на русском алфавите - работало. А английский вроде предыдущая функция должна раскодировать.
|
27.05.2010, 21:47 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ELForcer
Сижу only Hard & Soft
offline
Опыт:
1,593Активность: |
ShadoW DaemoN, Ругается на строку: i := StrToInt('$'+ Copy(Input, 3, 4));
Incompatible types: 'String' and 'PAnsiChar' Сделал i := StrToInt(PChar('$'+ Copy(Input, 3, 4))); Ща посмотрим что будет. |
28.05.2010, 12:49 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|