Здравствуйте, Sinclair, Вы писали:
N>>Это абсолютно ничего не говорит без контекста, в каком применяются подобные решения. N>>Например, "большая тройка" в описанном понимании означает задачи, близкие к таким, как финансы, базы данных людей и т.п. — и мы (кажется) не имеем ни одного языка, в котором был бы регистр букв и при этом он был бы значим для различения имён. Отсюда и тяга к подобным настройкам. S>Скорее всего да.
OK.
N>>С другой стороны, если у тебя поле, которое не имеет такой специфики, вероятно, что для него подобные настройки уже будут неадекватны. Например, возьми URL чего-то на ютубе. Ты поменяешь регистр одной буквы после v= — и оно уже не работает. Там скорее можно заменить g на %67, чем на G. Поменяешь v= на V= — всё, не открывает. Могли сделать идентификаторы и названия параметров регистронезависимыми? Могли. S>Тогда мы не смогли бы кодировать бинарные параметры в base64.
Если бы это было критично, кодировали бы в base32, base36, base40 (знаменитый вариант которого зовётся RADIX-50) и так далее, в зависимости от требований по уникальности вида символов и разрешения дополнительных знаков в наборе.
N>>Например, классическая IETFʼовая грамматизьма, включая центральные стандарты вроде RFC 822, 2616, 3261, игнорирует регистр везде, где может. S>Она проектировалась быть человеко-читаемой.
А получилось "слегка" наоборот. Полная читаемость всё равно не достижима — из-за ряда хохм типа: quoted string по умолчанию CS, а токены — CI; теги типа CI, а по факту есть масса участников, что их считают CS; грамматика такая, что сбивает логику — например, в записи типа "en;q=0.9,ru;q=0.8" запятая, в нарушение привычной логики, приоритетнее точки с запятой; хохмы типа URI params vs. address params (в SIP); и прочая и прочая.
И на самом деле терминология в принципе неправильная: игнорирование регистра не даёт человеко-читаемость. Читать, сравнивать на известные последовательности символов, писать их — не мешает. CI даёт человеко-озвучиваемость. А насколько она вообще важна в подобных случаях?
N>>Главное в этой проблеме — что то, что выглядит по-разному, должно по умолчанию и восприниматься по-разному, и наоборот. N>>И регистр в этом одна частная проблема. Например, есть À, À, А̀, Ὰ — ты видишь в своём браузере разницу? S>Я — да, вижу.
А сформулировать разницу по этому виду не на уровне "ой, тут штрих левее", а в описаниях причины такой разницы — сможешь?
А если будет без штрихов? AВ АΒ ΑB
N>>А драйвер FS воспримет их одинаково или по-разному? S>Смотря какой драйвер. И смотря как он настроен.
Да по-моему сейчас нет таких, которые бы умели это понимать толком.
N>>А их различать важнее, чем A против a, они вообще совпадут у большинства. S>Ага, это тоже элемент collation — будет ли он accent-sensitive.
При чём тут accent (in)sensitivity? У меня из 4 в примере было 2 латинских A, одна кириллическая и одна греческая. Accent insensitivity помогло бы разве что первые два сравнять, которые composed и decomposed.