C# 如何在c中检查键盘上没有无效分号#

C# 如何在c中检查键盘上没有无效分号#,c#,C#,我无法检查代码中的无效分号。 我不确定客户端是如何发布无效字符的,因为系统出现错误。 我有无效的分号(;),但我无法在编辑器中重新创建无效的半列(代码)。尝试将无效分号粘贴到编辑器中时,它会自动转换为正常键盘值(;)。因此,在代码中忽略了无效分号的作用域 无效分号仅在gmail、gira等文本框中可见 我试过以下方法 public string ReplaceInvalidIso8859Characters(string str) { var replac

我无法检查代码中的无效分号。 我不确定客户端是如何发布无效字符的,因为系统出现错误。 我有无效的分号(;),但我无法在编辑器中重新创建无效的半列(代码)。尝试将无效分号粘贴到编辑器中时,它会自动转换为正常键盘值(;)。因此,在代码中忽略了无效分号的作用域 无效分号仅在gmail、gira等文本框中可见

我试过以下方法

public string ReplaceInvalidIso8859Characters(string str)
        {
            var replacements = new Dictionary<string, string>
            {
                {";", ";"}

            };

            var newBodyBuilder = new StringBuilder(str);
            replacements.ForEach(_ => newBodyBuilder.Replace(_.Key, _.Value));
            return newBodyBuilder.ToString();
        }
public string replaceInvalidISO8859字符(string str)
{
var replacements=新字典
{
{";", ";"}
};
var newBodyBuilder=newstringbuilder(str);
replacements.ForEach(=>newBodyBuilder.Replace(0.Key,0.Value));
返回newBodyBuilder.ToString();
}


您可以使用字符代码, 您可以将编辑器中的任何不兼容字符转换为中的半列(“U+003B”) c#
char c1='\u003B'
你能找到路。对于其他字符代码
看看

这有帮助吗?为什么分号被认为是无效的?你用分号做什么?Unicode永远不会让人失望。可能的候选者是U+037E(可能出现在希腊文本中,问号)和U+FF1B(可能出现在日语文本中)。让调试器告诉您它是哪一个,检查str.tocharray()并切换到十六进制。