【问题标题】:How to compare two strings with unicode have some diffrent?如何比较两个字符串与 unicode 有什么不同?
【发布时间】:2013-03-30 07:36:54
【问题描述】:

事情发生得如此混乱。 我用这些

(cert.SubjectName.Name.ToLower()) == (subjectName.ToLower()

比较两个字符串。 虽然我总是得到错误,即使我可以看到这些字符串具有相同的值。 然后我发现,如果我在文本可视化器中打开值,选择显示 Unicode 控制字符 我发现第二个值以 |* 开头。

为什么会发生这些? 我应该如何让这两个字符串对我返回 true?

【问题讨论】:

  • 你应该找出为什么cert.SubjectName.Name的开头有一个奇怪的字符,而不是调整比较。
  • 看起来它可能是某种不可打印的字符,例如换行符或换页符。它的 Unicode 码位是多少?
  • HI cert.SubjectName.Name 返回正确的值,它是subjectName。我在 web.config 文件中得到这些值: WebConfigurationManager.AppSettings[Common.SigningCertificateName] 我使用 ConfigurationManager.AppSettings[Common.SigningCertificateName] 没有幸运
  • 而|*C是一个字符

标签: c#


【解决方案1】:

可能您的 app.config 包含奇怪的字符,您可能无法在常规编辑器中看到:

<appSettings>
    <add key="SigningCertificateName" value="<WEIRD-CHAR>CN=STSTestCert" />
</appSettings>

尝试删除整个值 ("CN=STSTestCert"),然后重新输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 2011-10-14
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    相关资源
    最近更新 更多