我们如何在C#中用字符串替换符号?
喜欢这个
输入:"�Click me."
输出:"Click me."
;
答案 0 :(得分:7)
一个简单的解决方案是从字符串中删除所有非ASCII字符。 this question有几种方法可以做到这一点,最简单的方法可能是:
string s = "�Click me.";
s = Regex.Replace(s, @"[^\u0000-\u007F]", "");
虽然如上所述,这可能是编码/代码页问题 - 在这里使用正则表达式可能不一定是合适的解决方案。
编辑:根据您的评论,您可以尝试以下其他几种模式:
删除所有非ASCII字符和ASCII控制字符:
s = Regex.Replace(s, @"[^\u0020-\u007F]", "");
删除除字母数字ASCII字符以外的所有内容:
s = Regex.Replace(s, @"[^A-Za-z0-9]", "");
答案 1 :(得分:2)
var output = input.Replace("�","");
Simples!
答案 2 :(得分:2)
您还可以使用unicode块名称:
source = Regex.Replace(source , @"\p{name}", "");
可以在this article.中找到名单列表。我不确定你的角色属于哪个区块。