Какая версия Unicode поддерживается какой платформой .NET и какой версией Windows в отношении классов символов?

Обновленный вопрос ¹

Что касается классов символов, сравнения, сортировки, нормализации и сопоставления, какие версии или версии Unicode поддерживаются какими платформами .NET?

Оригинальный вопрос

Я немного смутно помню, что читал, что .NET поддерживает Unicode версии 3.0 и что внутренняя кодировка UTF-16 на самом деле не UTF-16, а фактически использует UCS-2, а не то же самое. Кажется, например, что символы выше U + FFFF невозможны, т.е. рассмотрим:

string s = "\u1D7D9"; // ("Mathematical double-struck digit one") 

и он хранит строку"ᵽ9".

Я в основном ищу конкретные ссылки на ответы на следующие вопросы:

Если это не правда UTF-16 в .NET, что это?Какая версия Unicode поддерживается .NET?Если последние версии не поддерживаются или не планируются в ближайшем будущем, кто-нибудь знает о (не) коммерческой библиотеке или как я могу обойти эту проблему?

Updated) Я обновил вопрос, так как с течением времени он кажется более подходящим в отношении ответов и для более широкого сообщества. Я оставил оригинальный вопрос, на какие части которого были даны ответы в комментариях. Кроме того, старый UCS-2 (без суррогатов) использовался в старых 32-битных версиях Windows, в .NET всегда использовался UTF-16 (с суррогатами) для внутреннего использования.

Ответы на вопрос(4)

Ваш ответ на вопрос