Яндекс переводит в такой вид все русские буквы, даже если они идут вместе с английскими (abcdабвг = abcd%E0%E1%E2%E3). Ты прав, %E0 - это код символа в Hex виде. Получить его можно так:
Код:
function CharToHex( c: char ): string;
begin
Result := '%' + IntToHex( Ord( c ), 2 );
end;
Теперь надо только выделить из строки все русские буквы, а остальные не трогать. Пример:
Код:
function StrToHex( s: string ): string;
var
i: integer;
begin
for i := 1 to Length( s ) do
case Ord( s[i] ) of
168, 184, 224..255, 192..223:
Result := Result + '%' + IntToHex( Ord( s[i] ), 2 );
else
Result := Result + s[i];
end;
end;