Re: URI encoding кириллицы. Как?
От: alxn1 Россия  
Дата: 20.05.10 08:12
Оценка:
Здравствуйте, 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 символы). Как-то так.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.