Задать вопрос

Как использовать кириллицу в параметрах запроса IdHTTP?

Delphi 7. Код работает только с английскими url. С кириллицей вызывает ошибку.
Что нужно сделать для работы с английскими и с кирилличными url?

//Записать ответ от сервера в файл pharsed_data.txt'
procedure get_https_file_content_to_file(https_url:string);
var
IdHTTP1: TIdHTTP;
IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket;
server_response:ansistring;
text_file: textfile;
begin
IdHTTP1.HandleRedirects:=true;
IdHTTP1.RedirectMaximum:=15;
IdHTTP1:=TIdHTTP.Create(nil);
IdSSLIOHandlerSocket1:=TIdSSLIOHandlerSocket.Create(IdHTTP1);
IdSSLIOHandlerSocket1.SSLOptions.Method := sslvTLSv1;
IdHTTP1.IOHandler:=IdSSLIOHandlerSocket1;
//В интернете советуют строчку ниже для url с русскими буквами но у IdHTTP нет DefStringEncoding
//IdHTTP1.IOHandler.DefStringEncoding := TEncoding.ANSI;
server_response:=IdHTTP1.Get(https_url);
assignfile(text_file, ExtractFilePath(Application.ExeName)+'data\pharsed_data.txt');
rewrite(text_file);
write(text_file, server_response);
closefile(text_file);
end;
  • Вопрос задан
  • 634 просмотра
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
1. Разобраться, в какой кодировке работает сервер (обычно UTF-8).
2. Для путей — провести преобразование (Utf8Encode вроде). Не забудь, что Delphi 7 «из коробки» неюникодная.
3. Для доменных имён — закодировать в PunyCode. Это уже сам как-то — думаю, есть библиотеки, но точно не в коробке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы