Преобразовать из формата \ud835 в "" в C# [UWP]
У меня есть строка с некоторыми вонючими персонажами (например) " "
, Мне нужно проверить, если список содержит первый элемент в строке. Но если я его индексирую, он всегда становится \ud835
, После использования Char.ConvertFromUtf32 (\ud835
) и некоторых других попытках, я просто не могу узнать, как получить первый элемент в виде "".
1 ответ
Решение
Представлена суррогатной парой в кодировке UTF-16, используемой в.NET.
Суррогатная пара представлена двумя символами:
var s = " ";
Console.WriteLine(new string(new[] { s[0], s[1] }) == "");
Существуют встроенные вспомогательные методы, такие как Char.ConvertToUtf32
а также Char.IsSurrogate
который вы можете использовать, чтобы выяснить, если вы находитесь в этой ситуации.