Здравствуйте, artemu78, Вы писали:
A>В Delphi (7.0) иногда приходится отправлять HTTP Request, получить файл с сервера, но некоторые файлы содержат кириллицу в названии. Поэтому необходимо перекодировать РУССКИЕ БУКВЫ в %D0%A0%D0%A3%D0%A1%D0%A1%D0%9A%D0%98%D0%95%20%D0%91%D0%A3%D0%9A%D0%92%D0%AB
A>А вот как это сделать — не знаю. Пробовал пару алгоритмов из сети, но они почему то оставляют нетронутым пробел и это большая проблема.
A>Подскажите как из Delphi 7.0 закодировать корректный запрос к веб серверу на получение файла с кириллицей в названии.
Я делал так:
1) кодировал строку в UTF8, если она уже не в UTF8
2) проходился по строке, и если какой-либо символ (за символ я брал один байт) не являлся латинским или цифрой ('a'-'z' or 'A'-'Z' or '0'-'9') заменял его на последовательность '%XX', где XX — шестнадцатеричное представление этого байта
Вроде как работало правильно, только, по-моему, список допустимы символов (которые не нужно кодировать) можно расширить (добавить всякие минусы, плюсы, дефисы и прочие допустимые в URI символы). Как-то так.