2017-02-18 10 views
1

Есть ли способ использовать дополнительные символы Unicode (например, '') в качестве символьных символов в C#? Я попробовал это в VS 2017, с исходным файлом, сохраненным как UTF-8 с BOM, UTF-16 LE и BE, и я всегда получаю ошибку Too many characters in character literal.Использование дополнительных символов Unicode в качестве символьных символов в C#

+0

Тип 'char' фактически представляет собой единую кодовую точку utf-16. Если символ не является одной точкой кода utf-16, то нет. –

+1

FWIW можно представить в виде строки '' \ uD83C \ uDCDC''. –

+0

@mikez Примечание: Нет необходимости использовать обозначение \ u. –

ответ

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- из-а-нетто-строки –