Есть ли способ использовать дополнительные символы Unicode (например, ''
) в качестве символьных символов в C#? Я попробовал это в VS 2017, с исходным файлом, сохраненным как UTF-8 с BOM, UTF-16 LE и BE, и я всегда получаю ошибку Too many characters in character literal
.Использование дополнительных символов Unicode в качестве символьных символов в C#
1
A
ответ
2
Нет, char
- это единый кодовый блок UTF-16. String
- это последовательность блоков кода UTF-16, поэтому, если у вас есть код, который UTF-16 кодирует как два блока кода, используйте литерал String
.
""
+0
Правильно, я просто читал о том, как получить коды из строки: https://stackoverflow.com/questions/687359/how-would-you-get-an-array-of-unicode-code-points- из-а-нетто-строки –
Тип 'char' фактически представляет собой единую кодовую точку utf-16. Если символ не является одной точкой кода utf-16, то нет. –
FWIW можно представить в виде строки '' \ uD83C \ uDCDC''. –
@mikez Примечание: Нет необходимости использовать обозначение \ u. –