Мурло стандартизатора
Oct. 17th, 2009 03:35 pmЖили мы - не тужили, и вдруг захотелось нам в распределенном проекте файлов с русскими именами. С этим делом во всех уважающих себя операционных системах нынче порядок - имена хранятся в юникоде, чтобы всем было одинаково неудобно. Хоть китайскими иероглифами имена вводи.
Вот и ввели. На чрезвычайно уважающей себя операционной системе МакОС. Потом все эти файлы уехали на sourceforge.net, а оттуда - на машину с другой весьма уважаемой операционной системой. Да, впрочем, и с третьей тоже, несмотря на новизну.
Файл называется "слойка" (это не кондитерское, а... нет, лучше не начинать, да это и неважно).
Ожидали файл с именем слойка, а получилось - слойка. Видите разницу?
(Кто совсем не видит - назовитесь.)
Стандарт предписывает хранить имена файлов, используя канонические представления символов юникода. Для буквы "й" каноническое представление - U+0438 CYRILLIC SMALL LETTER I + U+0306 COMBINING BREVE. Этой, пардон за каламбур, буквы стандарта, судя по всему, пока строго придерживается только МакОС. Вот так и живем.
Вот и ввели. На чрезвычайно уважающей себя операционной системе МакОС. Потом все эти файлы уехали на sourceforge.net, а оттуда - на машину с другой весьма уважаемой операционной системой. Да, впрочем, и с третьей тоже, несмотря на новизну.
Файл называется "слойка" (это не кондитерское, а... нет, лучше не начинать, да это и неважно).
Ожидали файл с именем слойка, а получилось - слойка. Видите разницу?
(Кто совсем не видит - назовитесь.)
Стандарт предписывает хранить имена файлов, используя канонические представления символов юникода. Для буквы "й" каноническое представление - U+0438 CYRILLIC SMALL LETTER I + U+0306 COMBINING BREVE. Этой, пардон за каламбур, буквы стандарта, судя по всему, пока строго придерживается только МакОС. Вот так и живем.
no subject
Date: 2009-10-17 11:18 pm (UTC)А вы не выпендривайтесь :-))
no subject
Date: 2009-10-17 11:19 pm (UTC)no subject
Date: 2009-10-17 11:20 pm (UTC)no subject
Date: 2009-10-17 11:21 pm (UTC)бонусызряплаты, платежи за оффис и т.д. вывешивается на sourceforge.net?no subject
Date: 2009-10-17 11:25 pm (UTC)no subject
Date: 2009-10-17 11:30 pm (UTC)Скопировал, вставил в текстовый редактор - вышло так:
no subject
Date: 2009-10-17 11:36 pm (UTC)Когда она видна (например, в эмуляторе терминала специально сделаны spacing diacritics), проблем нет; хуже, когда в одном каталоге может быть два разных файла с "одинаковыми" именами.
no subject
Date: 2009-10-17 11:38 pm (UTC)no subject
Date: 2009-10-17 11:38 pm (UTC)no subject
Date: 2009-10-17 11:39 pm (UTC)no subject
Date: 2009-10-17 11:41 pm (UTC)плохомсмысле платежей?no subject
Date: 2009-10-17 11:47 pm (UTC)Причем навскидку угадать, есть у буквы с диакритикой канонизация или нет, невозможно. Например, у Ç - есть, у Ł - нет, у Ľ - есть, а у Ŀ - нет.
no subject
Date: 2009-10-17 11:48 pm (UTC)no subject
Date: 2009-10-17 11:50 pm (UTC)no subject
Date: 2009-10-17 11:52 pm (UTC)no subject
Date: 2009-10-17 11:56 pm (UTC)товарищ прапорщик, как именно система хранит имена файлов: если выглядит так же, то это один и тот же файл. А на практике - поди ж ты.no subject
Date: 2009-10-18 12:03 am (UTC)no subject
Date: 2009-10-18 12:05 am (UTC)...это старая технология (когда было 3 платежки) - на первой и третьей (как бы под "копирку") выписывается одна цифра, на второй - другая.
Как-то так.
Оговорка: я никогда этого не делал, и не стану. Ну, да Вы и сами знаете....
no subject
Date: 2009-10-18 12:11 am (UTC)Весело живём.
no subject
Date: 2009-10-18 12:15 am (UTC)[strudel:c$/temp/00] dvv% ls|od -tx1c 0000000 2e 2f 0a 2e 2e 2f 0a d1 81 d0 bb d0 be d0 b8 cc . / \n . . / \n с ** л ** о ** и ** ̆ 0000020 86 d0 ba d0 b0 0a d1 81 d0 bb d0 be d0 b8 cc 86 ** к ** а ** \n с ** л ** о ** и ** ̆ ** 0000040 d0 ba d0 b0 0a к ** а ** \nИнтересно — это SMB или Макось канонизирует?
no subject
Date: 2009-10-18 12:16 am (UTC)no subject
Date: 2009-10-18 12:21 am (UTC)Из линуха зайди по SMB - должно стать видно, кто канонизирует.
no subject
Date: 2009-10-18 12:24 am (UTC)Точнеее, обнаружению :)
no subject
Date: 2009-10-18 12:27 am (UTC)no subject
Date: 2009-10-18 12:27 am (UTC)Некоторые то ли шрифты, то ли рендереры выбирают компромиссное решение - они делают диакритику с нулевой шириной, отчего она налезает не на предыдущий символ, а на следующий.