【发布时间】:2010-10-16 15:03:10
【问题描述】:
我有一个用 C# 编写的应用程序,它可以进行大量的字符串比较。这些字符串是从各种来源(包括用户输入)中提取出来的,然后进行比较。但是,在将空间“32”与非破坏空间“160”进行比较时,我遇到了问题。对于用户来说,它们看起来相同,因此他们期望匹配。但是当应用程序进行比较时,没有匹配项。
解决此问题的最佳方法是什么?我是否必须去执行字符串比较并手动将不间断空格标准化为空格的所有代码部分? .NET 是否提供任何帮助? (我已经尝试了所有比较选项,但似乎没有任何帮助。)
有人建议我在收到时对字符串进行规范化,然后让字符串比较方法简单地比较规范化的字符串。我不确定这样做是否直接,因为首先什么是标准化字符串。我也要把它标准化什么?当然,现在我可以将非中断空间转换为中断空间。但是还能出现什么?这些规则可能有很多吗?他们甚至可能会发生冲突。 (在一种情况下我想使用规则,而在另一种情况下我不想。)
【问题讨论】:
-
您可以编辑自己的问题以添加更多信息或提供说明。
标签: c# string character-encoding