如何从字符串中删除非 ascii - c#
How remove non-ascii from string - c#
我想从字符串中删除表情符号,但它不起作用
string str = "Hello world ☀⛿";
string result = Regex.Replace(str, @"\p{Cs}", "");
我比较了我 found/thought 的几个选项:
string text = "Hello world ☀⛿END";
Console.WriteLine(text);
Console.WriteLine(Regex.Replace(text, @"\p{Cs}", ""));
Console.WriteLine(Regex.Replace(text, @"[^\u0000-\u007F]+", ""));
Console.WriteLine(text.Where(c => !Char.IsSurrogate(c)).ToArray());
这是结果:
Hello world ??????END
Hello world ??END
Hello world END
Hello world ??END
我不确定您的输入字符串在复制、粘贴到此处、再次复制并粘贴到 Visual Studio 过程中是否进行了一些修改,但据我所见,显然第二个选项似乎工作得更好。
您要删除所有特殊字符还是仅删除表情符号?
我想从字符串中删除表情符号,但它不起作用
string str = "Hello world ☀⛿";
string result = Regex.Replace(str, @"\p{Cs}", "");
我比较了我 found/thought 的几个选项:
string text = "Hello world ☀⛿END";
Console.WriteLine(text);
Console.WriteLine(Regex.Replace(text, @"\p{Cs}", ""));
Console.WriteLine(Regex.Replace(text, @"[^\u0000-\u007F]+", ""));
Console.WriteLine(text.Where(c => !Char.IsSurrogate(c)).ToArray());
这是结果:
Hello world ??????END
Hello world ??END
Hello world END
Hello world ??END
我不确定您的输入字符串在复制、粘贴到此处、再次复制并粘贴到 Visual Studio 过程中是否进行了一些修改,但据我所见,显然第二个选项似乎工作得更好。
您要删除所有特殊字符还是仅删除表情符号?