Jump to content
Sign in to follow this  
qwili

Кодировка

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

 

 

 

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

 

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

 

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

 

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

Share this post


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.

 

Share this post


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 в яндексе

Share this post


Link to post
Share on other sites

Вот код простой 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...