Оригиналът е на Raymond Chen.
Ако започнете да изучавате стандарта Unicode, може с изненада да откриете, че някои знаци имат разлики в регистрите, въпреки че самите те не са нито с горен, нито с долен регистър.
Ооооо, мистериозно и плашещо.
С други думи, това е символът c, който има следните свойства:
toUpper(c) ≠ toLower(c), обаче
c ≠ toUpper(c) и c ≠ toLower(c)
Честито! Поздравления, открихте мистериозния трети случай: случаят Title case.
Някои Unicode символи заемат една кодова единица, но представляват два графични символа, съединени заедно. Така например Unicode символът dz (U+01F1 LATIN SMALL LETTER DZ) изглежда като два Unicode символа един до друг: dz (U+0064 LATIN SMALL LETTER D, последвана от U+007A LATIN SMALL LETTER Z).
Тези диграфи са символи на азбуките на някои езици, по-специално на унгарския. В тези езици диграфът се счита за отделна буква от азбуката. Например, тук са първите десет букви от унгарската азбука:
| a | á | b | c | cs | d | dz | dzs | e | é |
Тези диграфи (и един триграф) имат три форми.
| Форма | Резултат |
|---|---|
| Горен регистър | DZ |
| Title case | Dz |
| Долен регистър | dz |
В кодирането на Unicode са включени четири диграфа.
| Горен регистър | Title case | Долен регистър |
|---|---|---|
| DŽ | Dž | dž |
| LJ | Lj | lj |
| NJ | Nj | nj |
| DZ | Dz | dz |
Но чакайте, ако имаме кодова единица в Unicode за диграфа dz, защо няма такава за диграфа cs или триграфа dzs? Какво толкова специално има в dz?
Тези диграфи дължат съществуването си в Уникод не на унгарския, а на сърбохърватския език. Сърбохърватският език се пише както на латиница (хърватски), така и на кирилица (сръбски), а тези диграфи позволяват взаимна недвусмислена транслитерация между тях.
Това е още една ситуация, в която светът е по-сложен, отколкото сме си мислели. Мислели сте, че разбирате големите и малките букви, но между тях има още един случай, за който едва ли сте знаели.
Допълнение: фактът, че на унгарски език „dz“ се счита за една буква, означава, че ако въведете низа за търсене „mad“, той няма да съвпадне с „madzag“ (което означава „въже“), защото „dz“ в „madzag“ е една буква, а не „d“, последвано от „z“, по същия начин „lav“ няма да съвпадне с думата „law“, просто защото първата част на буквата „w“ изглежда като „v“. Още един неочакван резултат, ако по погрешка използвате буквално търсене по подниз вместо търсене с отчитане на местоположението.
Аз получих тази информация от Unicode Standard, версия 15.0, глава 7: „Europe I“, раздел 7.1: „Latin“, подраздел „Latin Extended-B: U+0180-U+024F“, подподраздел „Croatian Digraphs Matching Serbian Cyrillic Letters“.
За българския език в тази статия няма нито дума.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!