Previous Entry Share Next Entry
2016-01

турецкая İ с точкой

Оригинал взят у _winnie в турецкая İ с точкой
В турецком языке есть две буквы Iı (без точки) и İi (обе с точкой).

Для программистов дополнительный прикол заключается в том, что "İ".tolower() это обычная ASCII буква i. И поэтому "İ".tolower().toupper() это уже I, а не İ. Из-за чего любой софт который якобы case insensitive и делает tolower всему входу - фейлится на турецком языке. Вообще непонятно что такое case insensitive без контекста языка. Нам программистам с родным LC_ALL=С легко живётся.

ИМХО это фейл разработчиков юникода. Для Украинского языка сделали бесполезную іІ , у которой отдельный код, но люди всё равно в половине случаев используют латинскую. А для турецкого языка где это смертельно важно не потерять оригинальный символ - не сделали.

Смертельно важно - это буквально. В 2008 году Рамазан Калкобан написал SMS-ку своей подруге Эмин "sıkısınca", а она прочитала "sikisince". Вместо "дорогая, ты неправа" - "грязная шлюха" . Глупая курица, она не в курсе культурных особенностей программисткого языка. Она в слезах жалуется папе, Рамазан бежит к милой извиняться, а Эмин с папой режут Рамазана ножом. Тот пытается убежать, но Эмин мало, она хочет добить за несчастную точку над i. Разман вынимает из себя нож, ранит Эмин, та помирает от потери крови. Потом уже в полицейском участке убивает себя. Ещё троих (папу Эмин и сестер) сажают в тюрьму. (источник).

Посмотрел какие ещё буквы после конвертации upper->lower->upper и lower->upper->lower не переходят в себя. Оказывается, довольно много, но в шрифтах они выглядят одинаково. Например, отдельный значок градусов кельвина K выглядит точно так же как K, и при этом его lowercase - это обычная буква k. Ещё есть специальная лигатура для ЖЖ, одним символом - Lj - LJ - lj. Много греческих букв, почему-то у них по два варианта lowercase, и один uppercase.

Преобразование -> upper -> lower не сохраняющее оригинал:

İ i I ( турецкая İ с точкой )
Dž dž DŽ ( http://en.wikipedia.org/wiki/D%C5%BE )
Dz dz DZ
Lj lj LJ ( http://en.wikipedia.org/wiki/IJ_%28letter%29 )
Nj nj NJ
ϴ θ Θ
ẞ ß ß
Ω ω Ω
K k K ( кельвины )
Å å Å ( Ангстрем, единица длины )


Преобразование -> lower -> upper не сохраняющее оригинал:

µ Μ μ
ı I i
ſ S s ( LATIN SMALL LETTER LONG S )
ẛ Ṡ ṡ
Dž DŽ dž
Lj LJ lj
Nj NJ nj
Dz DZ dz
ͅ Ι ι ( COMBINING GREEK YPOGEGRAMMENI )
ς Σ σ
ϐ Β β
ϑ Θ θ
ϕ Φ φ
ϖ Π π
ϰ Κ κ
ϱ Ρ ρ
ϵ Ε ε


  • 1
dmytrish April 12th, 2012
«Для Украинского языка сделали бесполезную іІ , у которой отдельный код, но люди всё равно в половине случаев используют латинскую» — прошу показать таких людей. Єто очень странно, я бьі весьма удивился.

antonix April 12th, 2012
Переключение между тремя En-Ru-Ukr раскладками гораздо менее удобно чем между двумя En-Ru. В основном потому что между двумя она у меня переключается автоматически программой PutoSwitcher а между тремя приходится переключать руками. Потому ради нескольких случаев в месяц и нескольких букв ставить третью раскладку - не логично. Вот так и появляется латинская i вместо украинской.

Anatoly Borodin April 23rd, 2012
Счастливые люди, всего 3 раскладки. А у меня когда-то было штук 6. Теперь осталось только две, US International для всей латиницы и http://uk.wikipedia.org/wiki/%D0%A0%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B0_%D0%BA%D0%BB%D0%B0%D0%B2%D1%96%D0%B0%D1%82%D1%83%D1%80%D0%B8#.D0.A3.D0.BA.D1.80.D0.B0.D1.97.D0.BD.D1.81.D1.8C.D0.BA.D0.B0_.D1.80.D0.BE.D0.B7.D0.BA.D0.BB.D0.B0.D0.B4.D0.BA.D0.B0_.C2.ABUkrainian_Unicode.C2.BB для кириллицы.

wizzard0 April 23rd, 2012
че-то вас в спам заносят постоянно, мда

Anatoly Borodin April 23rd, 2012
Может из-за фейсбучности?

spiculator April 12th, 2012
Они и русскому языку по мелочи нагадили: отказываются принимать кириллические гласные с ударением, типа используйте отдельный символ ударения (combining acute) и не выпендривайтесь. Ну то есть это всех кириллических алфавитов касается. При этом для любого европейского языка с латиницей вся диакритика есть в нормальном виде, плюс есть куча совершенно бредовых символов (взять например продублированную в FULLWIDTH латиницу — это вот вообще зачем?), а сотни миллионов людей с кириллической письменностью (это кстати не только славяне) идут нафиг со своими ударениями (это двадцать-тридцать символов), потому что организация Unicode хочет, цитирую, «избежать ненужных дискуссий». А весь софт работает с отдельными ударениями через жопу, поскольку в западных-то языках это не нужно. И зачем тогда вообще нужна эта организация, если обсудить вопрос они тупо не хотят?

Но с турками конечно круче всего получилось.

Anatoly Borodin April 23rd, 2012
> взять например продублированную в FULLWIDTH латиницу — это вот вообще зачем?

Для китайцев.

spiculator April 24th, 2012
И зачем это китайцам?

spiculator April 27th, 2012
Жуть. Ну ладно, значит не самая бесполезная вещь, есть в Юникоде и похуже.

Ссылка на Википедию кстати тоже унесла коммент в спам.

  • 1
?

Log in

No account? Create an account