Какая версия 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 (с суррогатами) для внутреннего использования.