Когда-то в ТЦИ делали исследовательский проект по интернациональной почте (то есть с не-латиницей до собаки). Я в рамках этого проекта начал реализовывать драфт по поддержке таких адресов в X.509-сертификатах. Реализовал, понятно, с ошибками, но патч засабмитил, его почитали в OpenSSL и заставили переделать драфт. В итоге документ стал RFC 8398 только в этом году.
Автор документа меня, однако, запомнил, и спросил, не допилю ли я патч. Начал допиливать и стал изживать одну из претензий к собственно патчу — зависимость от лишней библиотеки в OpenSSL сочли недопустимой. Ок, всего одна функция. Причём частично прописана в RFC в формате C-шного кода.
А дальше, блин, начинается кино. Разбить доменное имя на части по точке. Сконвертировать каждую часть в последовательность байт (UTF8 же), склеить. Не вылезя нигде за пределы буфера. А длину буфера вернуть, чтобы вызывающая сторона знала, какой буфер передать. В общем, тут даже при готовых функциях то, что на Perl с использованием библиотеки — три вызова, split, map и join, на C даёт пол-экрана.
Написать я это написал. Даже скомпилировал. А вот запускать и отлаживать страшно.
Специально для
ufm: нет, не-ASCII символы в именах доменов и email-адресах — не коварный замысел страшных любителей чебурнета, а нормальный ход нормальных любителей денег. Которым аудиторию по месту (нелатиноалфавитную) очень хочется расширить.
Автор документа меня, однако, запомнил, и спросил, не допилю ли я патч. Начал допиливать и стал изживать одну из претензий к собственно патчу — зависимость от лишней библиотеки в OpenSSL сочли недопустимой. Ок, всего одна функция. Причём частично прописана в RFC в формате C-шного кода.
А дальше, блин, начинается кино. Разбить доменное имя на части по точке. Сконвертировать каждую часть в последовательность байт (UTF8 же), склеить. Не вылезя нигде за пределы буфера. А длину буфера вернуть, чтобы вызывающая сторона знала, какой буфер передать. В общем, тут даже при готовых функциях то, что на Perl с использованием библиотеки — три вызова, split, map и join, на C даёт пол-экрана.
Написать я это написал. Даже скомпилировал. А вот запускать и отлаживать страшно.
Специально для
no subject
Date: 2018-07-19 08:49 am (UTC)Один русский, не знающий английского (нормальная ситуация в России) пересылает белорусу, не знающему английского, ссылку на статью в Интернете на украинском языке. Зачем им в этой ситуации латинские буквы в адресах?
Один еврей, не знающий английского (нормальная ситуация в Израиле) пересылает другому еврею, не знающему английского, ссылку на книгу в Интернете на иврите. Зачем им в этой ситуации латинские буквы в адресах?
Один китаец, не знающий английского, пересылает корейцу, не знающему английского, файл на японском языке. Зачем им в этой ситуации латинские буквы в адресах и именах файлов?
Краткое резюме сказанного: использование латинского алфавита в базовых протоколах интернета — пережиток западно-европейского империализьма, и это зло должно быть и будет искоренено.
no subject
Date: 2018-07-19 09:35 am (UTC)Я хотел-бы уточнить, если можно, как этот самый "один русский" этот адрес набирать будет?
no subject
Date: 2018-07-19 10:36 am (UTC)Символы и цифры есть.