Здравствуйте, artemu78, Вы писали:
A>function GetURIEncodedString(original : string): string; A>var A> i : integer; A> CurrentCharOfString : UTF8String; A>begin A> result := ''; A> //цикл по оригинальной строке A> for i:=1 to length(original) do A> begin A> //каждый символ кодируем в UTF8 A> CurrentCharOfString := UTF8Encode(original[i]); A> //берём первый символ, получаем его ASCII код и переводим в шестнадцатиричный формат и ставим в начале символ %, также со вторым символом A> result := result + '%' + IntToHex(Ord(CurrentCharOfString[1]),2) + '%' + IntToHex(Ord(CurrentCharOfString[2]),2); A> end; A>end;
А почему считается, что в UTF8 символ 2 байта занимает? Это ни разу не правильно. UTF8 символ может занимать от 1-го до 6-ти байт.