Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2010, 00:02   #1
zver777
Пользователь
 
Регистрация: 31.07.2009
Сообщений: 89
По умолчанию Кодирование url в яндексе

Привет программисты.

Что за кодирование урлов используется на яндексе.
Там допустим из буквы "а" получается "%D0%B0".

Я думал использовать эту функцию, но это не то
Код:
function UrlEncode(const s: AnsiString): string;
var
  I: integer;
begin
  Result := '';
  for i := 1 to Length(S) do
    case S[i] of
      '%', ' ', '&', '=', '@', '.', #13, #10, #128..#255: Result := Result + '%'
        + IntToHex(Ord(S[i]), 2);
    else
      Result := Result + S[i];
    end;
end;
Как кодировать, как у них?
zver777 вне форума Ответить с цитированием
Старый 17.06.2010, 00:15   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

М... Что значит "на яндексе"?
И как вы получили "%D0%B0" из "а"?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.06.2010, 00:23   #3
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

_http://ha.ckers.org/xss.html

Думаю низ страницы поможет "попрактиковатся", то что нужно находится между "Character Encoding Calculator" и "IP Obfuscation Calculator" :D

Последний раз редактировалось Lime; 17.06.2010 в 00:26.
Lime вне форума Ответить с цитированием
Старый 17.06.2010, 00:30   #4
zver777
Пользователь
 
Регистрация: 31.07.2009
Сообщений: 89
По умолчанию

Цитата:
Сообщение от DomiNick Посмотреть сообщение
М... Что значит "на яндексе"?
И как вы получили "%D0%B0" из "а"?

Ввожу в поиске яндекса "а". Идёт get запрос на
http://yandex.by/yandsearch?text=%D0%B0&tld=by&lr=111

Зелёным выделено перекодированное "а". Вот мне и надо знать, как это делается.


Lime не подходит ничего из того. Не удалось получить из "а", то что нужно.

Последний раз редактировалось zver777; 17.06.2010 в 00:33.
zver777 вне форума Ответить с цитированием
Старый 17.06.2010, 00:45   #5
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Теперь понятно... Вот только "а" будет "%E0"...
Опробовал функцию - вроде правильно всё... Вбил в Яндекс - работает...
А вот сам яндекс как-то странно "переводит", может у него какая расширенная кодировка просто?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.06.2010, 00:50   #6
zver777
Пользователь
 
Регистрация: 31.07.2009
Сообщений: 89
По умолчанию

Мне нужно именно, как яндекс. Так кстати и гугл делает.
Не вижу пока другого варианта, как просто для каждой буквы узнать соответствие и потом заменять.
zver777 вне форума Ответить с цитированием
Старый 17.06.2010, 00:56   #7
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

И Википедия... *
Возможно у них там просто Юникод, а не ASCII...
А зачем также-то? Результат-то одинаковый получается...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.06.2010, 01:17   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

почитайте на вике про URL
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.06.2010, 10:24   #9
Pasha_Sh
Форумчанин
 
Аватар для Pasha_Sh
 
Регистрация: 16.05.2010
Сообщений: 137
По умолчанию

Да не надо там ни чё заменять.
http://yandex.by/yandsearch?text=Привет
osu
Pasha_Sh вне форума Ответить с цитированием
Старый 17.06.2010, 11:01   #10
zver777
Пользователь
 
Регистрация: 31.07.2009
Сообщений: 89
По умолчанию

Ещё раз повторюсь, что меня надо перекодировать как у них.
Нашёл на википедии такое. Это как раз то, что нужно.

Цитата:
http://ru.wikipedia.org/wiki/Микрокредит

кодируется в URL как:
http://ru.wikipedia.org/wiki/%D0%9C%...B4%D0%B8%D1%82

Такое преобразование происходит в два этапа: сначала каждый символ кириллицы кодируется в Юникоде (UTF-8) в последовательность из двух байтов, а затем каждый байт этой последовательности записывается в шестнадцатеричном представлении:
М → D0 и 9C → %D0%9C
и → D0 и B8 → %D0%B8
к → D0 и BA → %D0%BA
р → D1 и 80 → %D1%80, и т. д.

Перед каждым таким шестнадцатеричным кодом байта, согласно спецификации URL, ставится знак процента (%) — отсюда даже возник английский термин «percent‐encoding», обозначающий способ кодирования символов в URL и URI.
Только не знаю, как это будет выглядеть в коде.

Последний раз редактировалось zver777; 17.06.2010 в 11:10.
zver777 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не отображается описание статьи в Яндексе VseOK PHP 4 01.03.2010 03:49
URL – кодирование запроса POST в Hex Ivanko Работа с сетью в Delphi 2 06.02.2010 12:52
Кодирование. Blizzz Общие вопросы Delphi 5 19.01.2009 18:28
Кодирование Mss_Smith Помощь студентам 3 17.04.2007 14:46
Вопросы Дмитрию Медведеву на Яндексе Alar Свободное общение 10 19.03.2007 12:20