我有一个用C#编写的应用程序,它进行了大量的字符串比较。这些字符串来自各种来源(包括用户输入),然后进行比较。 但是当将空格“32”与不间断空格“160”进行比较时,我遇到了问题。 对于用户来说,它们看起来相同,因此他们期望匹配。但是当应用程序进行比较时,没有匹配。
最好的解决方法是什么? 我是否必须去到所有进行字符串比较的代码部分,并手动将非间断空格规范化为空格? .NET提供了任何帮助吗? (我尝试了所有的比较选项,但似乎都没有帮助。)
建议我在接收字符串时对其进行规范化,然后让字符串比较方法仅比较规范化的字符串。 我不确定这样做是否直接。 首先,规范化的字符串是什么。 我该如何规范化它呢? 当然,现在我可以将非间断空格转换为空格。 但是还会出现什么情况? 可能会有很多这样的规则吗? 它们可能甚至是互相矛盾的。(在某些情况下,我想使用规则,在其他情况下,我不想使用规则。)