Показать сообщение отдельно
  #2  
Старый 01.11.2006, 22:36
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Яндекс переводит в такой вид все русские буквы, даже если они идут вместе с английскими (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;
Ответить с цитированием