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

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

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

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

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

  • 1
?

Log in

No account? Create an account