Оскільки я, здається, трохи постраждав, думаючи, що Windows "робить це правильно", я вважаю, що повинен написати відповідь, щоб виправдати свою позицію.
Справа в тому, що текст, який ви маєте, говорить операційній системі зробити божевільну кількість об'єднаних символів. Проблема в тому, що одна операційна система насправді їх рендерує, а інша - через низку проблем. Одне з цих питань полягає в тому, наскільки ретельними були програмісти, коли вони писали код для їх надання, інше, через те, що програмісти будуть занадто ледачими, щоб їх правильно реалізувати, якщо вони взагалі були.
В основному це зводиться до думки про те, що письмові мови є рідкими речами, і що багато символів на певних мовах мають багато різних діакритичних даних, які застосовуються для зміни вимови символів. Як ми поводимось із усіма цими діакритиками, чи даємо кожній букві з діакритиком новий символ (що призвело б до одного чорта безлічі нових і майже однакових символів) чи ми створюємо набір символів спеціально для діакритики та зменшуємо наш загальний алфавіт?
Unicode дає нам можливість робити і те, і інше, але при цьому програмістам, які мають видати ці діакритики, доводиться мати справу з тим, що є деякі символи, які насправді мають декілька діакритиків, один вище і один знизу, і тоді програміст має задати питання, коли саме вони зупиняються. Вони могли б обмежити це двома і задовольнити більшість людей, але ігнорувати тих, хто хоче або потребує трьох діакритиків, щоб офіційно писати своєю мовою.
Майкрософт правильно чи неправильно вирішив дозволити користувачеві вирішувати, скільки зайвих марок людина хоче використати. Цей шлях потребує досить хорошого програміста і деякої жорсткої раціоналізації, яку слід пройти. Я цілком їх підтримую і в дозволі цього, і в тому, що вони роблять це добре .
Якби цих персонажів не було, з іншого боку, я хотів би знати, чому вони відсутні. Це було рішення "ми скидаємо це на підлогу після x
діакритики", чи це було через те, що програмісти занадто ліниві робити це належним чином і, можливо, піддають мене деякому переповненню буфера з кодом, прихованим у діакритиці, що передається для виконання система?
Проста проблема тут полягає в тому, що, фактично переводячи цих символів, я бачу, що система робить саме те, що їй сказано, а не робити те, що вважає за правильне, або, що ще гірше, робить щось потенційно шкідливе .