Как 4-байтовые символы представлены в C#

#c# #.net #astral-plane

#c# #.net #астральный план

Вопрос:

Как символы размером 4 байта представлены в C #? Например, один символ или набор из 2 символов?

 var someCharacter = 'x'; //put 4 bytes UTF-16 character
  

Комментарии:

1. Не могли бы вы привести пример символа размером 4 байта? Это сделало бы ваш вопрос более понятным.

2. @jv42, есть некоторые символы UTF-16, которые не могут быть представлены 2 байтами. Таким образом, это любой символ с кодом из 2 ^ 16

3. См. Статью Джона Скита «Unicode и .NET» — csharpindepth.com/Articles/General/Unicode.aspx

4. Я знаю, что эти символы существуют, приведение примера позволило бы убедиться, что в вопросе не было опечатки, тем более что значения ‘char’ и ‘character’ иногда сбивают с толку.

Ответ №1:

C # может хранить в типе только символы из базовой многоязычной плоскости char . Для символов вне этой плоскости char должны использоваться два s, называемые суррогатами.

Вы также можете использовать строковый литерал, такой как:

 string s = "U0001D11E";
  

Смотрите UTF-16.