Я использую "строки Unicode" в Windows с тех пор, пока ... Я узнал о Unicode (например, после выпуска). Однако меня всегда озадачивало то, что Win32API очень слабо упоминает «юникод». В частности, вариант «юникода», упомянутый MSN, - это UTF-16 (хотя терминология «широкий символ» исходит из того факта, что раньше он был UCS-2, а не Unicode). Однако в нем почти не упоминается нормализация Unicode.
В MSN есть несколько страниц о Unicode и формах нормализации Unicode и функциях изменения формы нормализации . На странице о нормализации даже говорится:
Win32 и .NET Framework поддерживают все четыре формы нормализации.
Однако я нигде в документации не нашел, какая форма нормализации используется (или понимается) Win32 API.
Вопрос 1 : какая форма нормализации используется по умолчанию для пользовательского ввода (например, элемента управления Edit) и преобразования с помощью MultiByteToWideChar ()
?
Вопрос 2 : должен ли строки, передаваемые функциям Win32API, имеют определенную форму нормализации или не зависят от нормализации ядра и файловой системы?