Тема: UrlEncode и UTF8
Показать сообщение отдельно
  #3  
Старый 19.10.2010, 14:15
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Справка:
Цитата:
encodeURI
Синтаксис
encodeURI(URI)

Аргументы
URI
строка URI

Описание, примеры
Метод предполагает, что переданный параметр является полным URI, поэтому не кодирует зарезервированные значения, которые имеют специальные значения в URI.

Метод encodeURI заменяет все символы, исключая следующие, соответствующими им UTF-8 escape-последовательностями.

Тип
Включает в себя

Зарезервированные
; , / ? : @ & = + $

Незаменяемые символы
латинский алфавит, десятичные цифры, - _ . ! ~ * ' ( )

Значок решетки
#

Заметим, что encodeURI не может формировать данные для GET или POST-запросов, например, для XMLHttpRequest, так как "&", "+", и "=" не кодируются - а они являются специальными символами.

Ф-я нужно еще добавить незаменяемые символы
Код:
function UrlEncode(S: Utf8String): String;
var
  I: Integer;
begin
  Result := '';
  for I := 1 to Length(S)do
  if S[i] in ['a'..'z', 'A'..'Z'] then
    Result := Result + S[i]
  else
    Result := Result + '%' + IntToHex(Ord(S[i]), 2);
end;

используем
Код:
Memo1.Lines.Add(UrlEncode(AnsiToUtf8('Учится, учится и еще раз учится')));
Ответить с цитированием