Какая версия 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?
  • Если последние версии не поддерживаются или не планируются в ближайшем будущем, знает ли кто-нибудь о (не) коммерческой библиотеке или как я могу решить эту проблему?

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

26
задан Abel 12 May 2015 в 23:35
поделиться