C# 如何删除C中windows-10安全选项卡中的异常隐藏字符#

C# 如何删除C中windows-10安全选项卡中的异常隐藏字符#,c#,windows,unicode,windows-10,filepath,C#,Windows,Unicode,Windows 10,Filepath,我在windows-10安全选项卡的路径中发现了一个隐藏字符 在Windows 10中,右键单击->属性 在安全选项卡上,突出显示“对象名称”的完整路径 以ANSI编码复制并粘贴到记事本+ 应该是“‪C:\Users\Mark\Documents“但它会显示一个额外的字符,如“?C:\Users\Mark\Documents” 我试图在Unicode地图中搜索这个,但找不到这是关于什么的。 有人知道这个角色是从哪里来的吗? 请在此找到附件,以供您理解: (由于我工作场所的政策,我无法直接上传图片

我在windows-10安全选项卡的路径中发现了一个隐藏字符

  • 在Windows 10中,右键单击->属性
  • 在安全选项卡上,突出显示“对象名称”的完整路径
  • 以ANSI编码复制并粘贴到记事本+
  • 应该是“‪C:\Users\Mark\Documents“但它会显示一个额外的字符,如“?C:\Users\Mark\Documents”
  • 我试图在Unicode地图中搜索这个,但找不到这是关于什么的。 有人知道这个角色是从哪里来的吗? 请在此找到附件,以供您理解:
    (由于我工作场所的政策,我无法直接上传图片。)

    这是unicode中的从左到右嵌入(U+202A)

    unicode检查:

    Unicode详细信息:

    以下是我在C#中检查的方式:

    要删除它,请执行以下操作:

    line= line.Replace(u202, String.Empty);
    
    要编写验证代码以确定其路径是否正确,请执行以下操作:

    bool isWrong = line.IndexOfAny(Path.GetInvalidPathChars()) == -1;
    

    将Unicode转换为ANSI是一种有损操作。如果您希望对此进行分析,请使用支持Unicode的编辑器。超级用户或安全StackExchange姐妹站点可能更合适。可能这只是windows上的一个常见错误(BOM?),可能是不同版本之间的错误,或者…@MrLister我刚刚编辑过它。
    bool isWrong = line.IndexOfAny(Path.GetInvalidPathChars()) == -1;