Комментарии 39
Я не знаю никого кто использует диграф dz, все пишут две буквы. А многие сербы вообще не заморачиваются и вместо букв "c", "ć", "č" пишут "с". Такая же ситуация и с остальными буквами, где есть диакритические символы.
Помню один из своих тасков на проекте в Польше (HR приложение) - написание функции, которая переводит юникодную строку fullname со всей этой диакриктикой и умляутами в однобитную кодировку для упрощения индексации и поиска. Сама задача простая, но пришлось долго составлять таблицу соответствий. Странно, что на такую распространенную проблему не нашлось готовой библиотечной функции.
Гуглите по слову "Unidecode" вот например на питоне https://pypi.org/project/Unidecode/
давно уже всё придумано, называется "нормализация Юникода", библиотека ICU, появилась в 1999 году
А не проще ли было привести венгерский алфавит в соответствие Здравому Смыслу, а не вводить в Юникод всякую хрень? Если букву можно записать двумя буквами то это две буквы.
А вообще где можно почитать о всяких странностях Юникода, не закапываясь в стандарт? И не приходило ли кому в голову сделать "работу над ошибками" в виде альтернативной таблицы символов (да, здесь должна быть картинка про 17 конкурирующих стандартов - но с другой стороны ведь объективно там всякой фигни накопилось немало).
שָׁלוֹם, בּוֹקֶר טוֹב!
(Восклицательный знак должен стоять слева, но редактор Хабра не справился с Ивритом)
Если записывать звуки несколькими буквами то и получается хрень. Две, три, четыре(привет немецкому) буквы для одного звука. А всё потому что говорим мы звуками а пишем буквами. И для европейских языков очень распространён латинский алфавит, который со своим жалким набором букв не подходит ни одному более-менее популярному языку (нет он не достаточен ни для английского, ни для итальянского). Вот и приходится изображать звуки разными комбинация, умляютами, и просто дополнительными буквами. И при этом люди не хотят переходить на какой-то общий искусственный язык.
Не понял при чем тут звуки. Во многих языках очень нетривиальные правила чтения слов, но при чем здесь Юникод? Претензия к тому, что составители венгерского алфавита зачем-то в алфавит (который есть набор букв, атомарных символов) ввели буквосочетания, а комитет Юникода это бездумно повторил. Если в языке есть устойчивое буквосочетание, это не значит что его нужно рассматривать как отдельную букву. В английском после Q обязательно идет U, но вводить букву QU никому в голову не пришло.
В английском после Q обязательно идет U, но вводить букву QU никому в голову не пришло.
Потому что есть sheqel, tzaddiq и еще много других слов, пришедших в английский из других языков.
Вся система речи, письменности, грамматики это дремучее легаси с тысячами лет истории. Никаким новым "более лучшим и правильным" Юникодом это не исправить, всё равно будет костыль для легаси. Я за рефкторинг вместо костылей))
Что? Чего вы говорите?
[вдумайтесь о разнице звуков и написания этого вопроса и того, сколько звуков записано каким количеством букв]
Потому что большинство населения мира считает фонетическое письмо глупым пережитком родоплеменного устройства общества.
Потому что писать символы -- это не то же самое, что говорить, хуже того, местами это дополнительные, если не противоречащие задачи. Не только в матане или химии, всё программирование об этом.
Изучаю сейчас немецкий язык. Подскажите, какой звук обозначается 4 буквами? Пока что не встречал подобных.
tsch = ч.
Deutschland, Deutsche Bahn,
И прекрасное (ок, это заимствование)
Borschtcht
На "Щ" уходит всего 7 букв.
А не проще ли было привести венгерский алфавит в соответствие Здравому Смыслу, а не вводить в Юникод всякую хрень? Если букву можно записать двумя буквами то это две буквы.
В статье же сказано: чтобы обеспечить однозначность конвертации алфавитов. Про венгерский я не знаю, а, скажем, в сербском есть буквы Њ (мягкая Н), обычная Н, и Ј (соответствующая русскому Й). В латинице эти буквы записываются как NJ, N, J. Поэтому возникает неоднозначность при переводе латиницы в кириллицу, как трактовать этот NJ: как одну букву Њ или как НЈ. И да, есть слова, где такое буквосочетание присутствует. Использование единого юникодного символа для диграфа NJ позволяет различить эти ситуации.
По-хорошему, конечно, разработчики алфавита должны были сразу использовать неповторяющиеся буквы, скажем, ввести Ñ. Но имеем что имеем. А стандарт Юникод не диктует языкам, что они должны стать ёжиками, он лишь фиксирует существующие нормы. Хотя, конечно, на практике этими диграфами вряд ли кто-то пользуется; их даже на клавиатурах нет, насколько я знаю…
Как на счет русской буквы Ы? И если английская W ещё как минимум соединена визуально, то Ы уже нет. Для нас кажется нонсенсом разделить Ы на части, думаю для них dz также.
У нас нет буквы I в алфавите, она только в украинском есть. Потому Ы вроде как норм, дублирования в русском алфавите не происходит...
В казахском языке кириллический алфавит, в котором есть и Ь, и Ы, и І.
А почему бы нам тогда не вспомнить историю буквы У, которая до Петра Первого обозначалась как диграф "оу" (Юникод сохранил следы этой традиции в символах Ꙋꙋᲈ и Ѹѹ), хотя "у" в отдельности нигде не встречалась? Почему бı нам не упростить эти странıе символı-лигатурı?
Шутка, если что.
Диграфную историю «оv» мы можем наблюдать в начертаниях «y» (от второй части) и в диграфе «ю» = «iov» (от первой части).
Кстати, «v» встречалась отдельно вплоть до начала XX в печатных гражданских (и тем более церковных) текстах (а в быту всё более заменялась на фонетические эквиваленты) в словах «мvро», «сvнодъ», «Моvсей» и прочих заимствованиях.
Шутка, если что.
А зря. Бездумно тащить легаси с видом, что так и должно быть, тоже не полезно.
не приходило ли кому в голову сделать "работу над ошибками" в виде альтернативной таблицы символов
Каждый раз на Хабре в статьях про странности Юникода. И я так спрашивал.
Ещё кто-то предлагал дельную (на мой взгляд) идею: можно всё нужное поместить в 2 байта. А как же десятки тысяч иероглифов? А они состоят из общих элементов и поэтому их можно делать составными.
Но это уже надо бы спросить китайских программистов как будет работаться с таким вариантом.
если ввести строку поиска «mad», то она не будет соответствовать «madzag» (что означает «верёвка»), потому что «dz» в «madzag» — это отдельная буква, а не «d», за которой следует «z»
Если кто-то решил перепроверить - нет, тут две отдельные буквы. Но в таблицах - да, один символ. :-)
Хотел проверить везде ли автор не поленился и использовал dz в тексте (спойлер: не везде), но наткнулся на забавную особенность поиска по тексту в Chrome: при поиске по диаграфу dz он, в том числе, находит буквосочетания dz. В Firefox такого нет - поиск работает строго.
Когда есть разница регистров, но это не верхний и не нижний регистры?