Как оно может быть верным если тут уже несколько опытных программистов сказали, что юникод это не кодировка, а система (стандарт) кодирования? Нет такой кодировки - юникод, понимаешь? Далее тогда возникает вопрос, в какой кодировке должен быть урл, в УТФ-8, в УТФ-16 или в УТФ-32?
блудный сын Ты читать умеешь? мог бы не полениться статью с ICANN почитать: У слова "кодировка" вообще нет точно определенного значения. UTF-8, т.к. коды латинских символов в адресной строке соответствуют кодам ASCII.
блудный сын Для URL стандартом уже давно считается UTF-8. Просто вся хня в том, что через сетевые протоколы по-прежнему нельзя в качестве URL пропускать ничего, кроме ASCII-символов. Поэтому: - доменное имя кодируется методом punycode; - все остальное кодируется методом "URL-кодирования" (почти все, кроме латинских букв и цифр, превращается в %NN, например "?"="%3F", "Я"="%D0%AF" и т.п.).
Да прям там! Такая загадочная вещь, что и определения ей нет Вое тебе коротенькое определение: кодировка это набор символов. Можешь в википедии глянуть А до этого ты говорил юникод... И возмущался когда я переспрашивал... Так в юникоде или в УТФ-8?
А если глянуть на проблему шире? Вот взгляни на эту ссылку (рабочая кстати ) http://яндекс.com/Яндекс立即下载看天下电子书阅读器.jpg В ней кроме всего прочего есть китайские иероглифы. Как можно с помощью УТФ-8 закодировать китайские иероглифы? Как? Их же тысячи!
блудный сын Знаешь, почему UTF стал популярен? Потому что в его набор включили большинство языковых символов мира. И русский, и китайский, и арабский. В китайском около 100 иероглифов. УРЛ на русском пока невозможны в связи с тем, что сам протокол на HTTP английском. Если страница в утф, то ссылка может быть на русском, но, при этом, при запросе этой ссылке сервер, браузер переводит её в пуникод и/или в %NN. Т.е. русская ссылка - это только визуальный финт браузера, и не каждого, притом.
блудный сын Ну пусть тысячи, в чем проблема-то. Я же писал выше, что UTF-8 - это кодировка для Юникода. Следовательно, все символы Юникода она умеет как-то представлять, иначе это нельзя было бы назвать кодировкой. В Юникод "умещается" вовсе не 2^16=65536 символов, а 2^32=4294967296 (на самом деле меньше, см. Википедию, там все расписано). Но на иероглифы вполне хватает.
Да? А пример такого 4-х байтного символа и его UTF-8 кода можешь привести? В общем я вижу ты понял, что юникод это не кодировка, а система кодирования? А как эта кодировка называется?
Ну как она может представить все символы, если в ней заложены только 256? Если бы УТФ-8 могла кодировать все символы, то тогда пропал бы смысл городить огород с УТФ-16 и УТФ-32.
Кто тебе такое сказал? Если я не ошибаюсь, то символы в UTF-16 хранятся в виде 4х символов шестнадцатеричной системы. 16^4 = 65 536 символов. UTF-8 со своими 4096 символами тоже вполне пригоден. UTF-16 и 32 придумали, чтобы уместить туда абсолютно все языки и их виды, а так же все спецсимволы мира.
О, теперь до меня начинает доходить! Значит если в УТФ-8 код символа вот такой 0xxxxxxx, то это 1 байт; если код символа вот такой 110xxxxx то это два символа и нужно следующие 8 бит читать совместно с первым, ну и так далее, как там в таблице: 0xxxxxxx 110xxxxx 10xxxxxx 1110xxxx 10xxxxxx 10xxxxxx 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
блудный сын Я уже написал, сколько в ней "заложено" - 2^32=4294967296. Если бы на C++ можно было написать любую программу, то тогда пропал бы смысл городить огород с другими языками. У каждой кодировки есть свои достоинства и недостатки. Недостатки UTF-8 я уже не раз расписывал здесь. Но эти недостатки не связаны с количеством поддерживаемых символов.
А я думал только 256, т.к. 8 бит бают именно столько комбинаций. А оказывается они ввели управляющие байты, которые подсказывают сколько байт пошло на кодирование символа. Я этого не знал. Теперь буду всем рассказывать А я всегда думал, что именно это и является основной причиной введения УТФ-16 и УТФ-32!
Punycode — стандартизированный метод преобразования последовательностей Unicode-символов в так называемые ACE-последовательности, которые состоят только из алфавитно-цифровых символов, как это разрешено в доменных именах. Punycode был разработан для однозначного преобразования доменных имен, содержащих умляуты или символы кириллицы (в кодировке Unicode), в последовательность ASCII-символов. А преобразовать можно здесь http://mpak.su/idna
Наверно всетаки так 0xxxxxxx 110xxxxx xxxxxxxx 1110xxxx xxxxxxxx xxxxxxxx 11110xxx xxxxxxxx xxxxxxxx xxxxxxxx Просто использование 10 во втором и последующем байте является излишней информацией. Сколько байт используется мы уже знаем. И ее использование во всех последующих это напрасная трата ресурсов.
О, свежачОк. А вообще домены на русском для меня приемлемы только в качестве редиректа на основной yandex.ru ( <= яндекс.ру). Лоховская фишка вобщемто.