Jump to content

Recommended Posts

Люди, помогите!

Если в Yandex (любой поисковик) списать 'скачать' (любые русски символы), а потом скопировать url браузер, то получится

http://yandex.ru/yandsearch?lr=50&text=%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C

Дак, вот какая это кодировка кракозябр? Мне нужно текст в неё перевести

Link to post
Share on other sites

Это кодировка  UTF-8 в HEX.

 

P.S. А так на будещее - в адресной строке используется кодировка Unicode, например "% 20" - это шестнадцатиричный машинный код символа "пробел".

Link to post
Share on other sites

 

 

 

URL-encoded → UTF-8 что это?

 

Декодер воспринимает исходный код как UTF-8 (хотя деокдер немного странный, после проведения некоторых экспериментов).

 

Кодирование URL и просто двоичных данных в последовательность букв, цифр и некоторых специальных знаков латинского алфавита в интернете было связано с ограничением физических устройств на передачу только алфавитно-цифровых символов. В URL такое кодирование обычно применяется для передачи символов в формате Unicode (как правило UTF-8) в последовательность из двух байт, записанных в шестнадцатиричном представлении. Каждый байт предваряется знаком %.

 

Надеюсь так будет понятнее.

Link to post
Share on other sites

http://ru.wikipedia.org/wiki/URL#.D0.9A.D0.BE.D0.B4.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_URL
 
Вот, то - что тебе нужно. Найди абзац "Кодирование URL"

 

Появление адресов URL стало существенным нововведением в Интернете. Однако с момента его изобретения и по сей день стандарт URL обладает серьёзным недостатком — в нём можно использовать только ограниченный набор символов, даже меньший, нежели в ASCII: латинские буквы, цифры и лишь некоторые знаки препинания. Если мы захотим использовать в URL символы кириллицы, или иероглифы, или, скажем, специфические символы французского языка, то нужные нам символы должны быть перекодированы особым образом.

В русскоязычной Википедии ежедневно приходится видеть пример кодирования URL, поскольку русский язык использует символы кириллицы. Например, строка вида:
_ru.wikipedia.org/wiki/Микрокредит

кодируется в URL как:
_ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D0%BA%D1%80%D0%B5%D0%B4%D0%B8%D1%82

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

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

 

Link to post
Share on other sites

Выход нашел! Для тех кто пишет на Delphi поможет:

Uses HTTPApp;

...

edit1.text:='Кодирование url в яндексе';           // Кодирование url в яндексе
edit2.text:=HTTPEncode(UTF8Encode(edit1.text));   // %D0%9A%D0%BE%D0%B4%D0%B8%D1%80%D0%BE%D
edit3.text:=UTF8Decode(HTTPDecode(edit2.text));  // Кодирование url в яндексе
Link to post
Share on other sites
  • 3 weeks later...

Вот код простой HTML-странички, который поможет закодировать/раскодировать.

Вместо пробелов лучше добавлять - или _



<!DOCTYPE html>
 <head>
<meta charset="utf-8" />
<title>Кодировка</title>
  <style type="text/css">
   body{
   margin:0;
   padding:0;
   font:14px Verdana, Arial;
   }
   #page {
   width:800px;
   margin:50px auto;
   border:1px #ccc solid;
   background:#eee;
   padding:15px;
   }
</style>
</head> 
<body> 
<div id="page">
<h1>Кодировка</h1>
<script language="JavaScript" type="text/javascript">
function coding() {
	var obj = document.getElementById('url');
	var url = obj.value;
	obj.value = encodeURIComponent(url);
}
function decoding() {
	var obj = document.getElementById('url');
	var url = obj.value;
	obj.value = decodeURIComponent(url.replace(/\+/g,  " "));
}
</script>
<div align="center">
<form action="#">
<textarea cols="70" rows="6" id="url"></textarea><br /><br />
<input type="button" onclick="decoding()" value="Раскодировать">
<input type="button" onclick="coding()" value="Закодировать">
<br /><br />
</form>
</div>
</div> 
</body>
</html>

code.html

Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...