Здравствуйте, rean, Вы писали:
R>Но в винде 2 байта эту проблему не решают, потому как юникод в два байта не умещается.
И что же решает эту проблему в винде? Она внутри вся на фиксированном двухбайтном юникоде. Или Вы о каких-нибудь экзотических языках, которые используются максимум в нескольких тысячах компьютеров на всю планету?
R>Ну или молиться и думать, что все работает, уповая на то, что у юзера вряд-ли затесется какой-нибудь случайный расширенный символ, да и еще он не окажется важным с точки зрения бизнес-логики.
Какова, по-Вашему, удельная доля программ, которым могут потребоваться такие символы? Хоть 0.1% наберется? Стоят ли они того, чтобы поддерживать кодировку с переменной шириной символа во всех системных API?
R>случайно символы разделения путей и т.п. никак не появляются.
Да, пример с ФС был не совсем удачным. Но те же регулярные выражения, которые в унихах чуть более, чем везде?
R>Поэтому для программиста это эквивалентно работе с ASCII
Только в самых простых случаях. Например, весьма типичная операция — по позиции символа в строке определить его знакоместо. В ANSI/UNICODE делается элементарным вычитанием, а в линуксах для этого потребуются специальные функции? Вывод таблицы на консоль уже должен выглядеть нетривиально.