Обновленный вопрос №
Что касается классов символов, сравнения, сортировки, нормализации и сопоставлений, какая версия или версии 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?
- Если последние версии не поддерживаются или планируются в ближайшем будущем, знает ли кто-нибудь (не) коммерческая библиотека или как я могу решить эту проблему?
¹) Я обновил вопрос, как с прохождением времени, он кажется более уместным в отношении ответов и для более широкого сообщества. Я оставил исходный вопрос, вместо которого в ответах были указаны ответы. Также старый UCS-2 (без суррогатов) использовался в современных 32-битных версиях Windows,.NET всегда использовал UTF-16 (с суррогатами) внутри.