#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.