Преобразовать из формата \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 который вы можете использовать, чтобы выяснить, если вы находитесь в этой ситуации.

Другие вопросы по тегам