У меня есть задача по передачи поисковой системе одного из интернет-серверов ключевых слов для поиска.
Однако русское слово надо перевести в URL формат. Например,"позиционирование" => %EF%EE%E7%E8%F6%E8%EE%ED%E8%F0%EE%E2%E0%ED%E8%E5
Однако при использовании известных мне функции URLEncode для перевода строковой переменной в URL русские слова переводятся неправильно и сервер их не понимает.
Не могли бы вы мне помочь с решением этой проблемы? Заранее благодарен,
Строку в URL
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 273
- Зарегистрирован: 30 июн 2005, 14:53
Код: Выделить всё
function EncodeURL(const InputStr: string; const bQueryStr: Boolean): string;
var
Idx: Integer;
begin
Result := '';
for Idx := 1 to Length(InputStr) do
begin
case InputStr[Idx] of
'A'..'Z', 'a'..'z', '0'..'9', '-', '_', '.':
Result := Result + InputStr[Idx];
' ':
if bQueryStr then
Result := Result + '+'
else
Result := Result + '%20';
else
Result := Result + '%' + SysUtils.IntToHex(Ord(InputStr[Idx]), 2);
end;
end;
end;
function DecodeUrl(const InputStr: string): string;
var
Idx: Integer;
Hex: string;
Code: Integer;
begin
Result := '';
Idx := 1;
while Idx <= Length(InputStr) do
begin
case InputStr[Idx] of
'%':
begin
if Idx <= Length(InputStr) - 2 then
begin
Hex := InputStr[Idx + 1] + InputStr[Idx + 2];
Code := SysUtils.StrToIntDef('$' + Hex, -1);
Inc(Idx, 2);
end
else
Code := -1;
if Code = -1 then
raise SysUtils.EConvertError.Create('Invalid hex digit in URL');
Result := Result + Chr(Code);
end;
'+':
Result := Result + ' '
else
Result := Result + InputStr[Idx];
end;
Inc(Idx);
end;
end;
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.