我有两个字符串,一个是双字节值,另一个是单字节值。字符串比较结果返回false,如何在忽略单字节/双字节差异的情况下正确比较?
string s1 = "smatsumoto11"
string s2 = "smatsumoto11"
在相同的场景中,如果您在 SQL Server 中有一个 nvarchar 列,其中包含值 smatasmototo11
,使用 where 条件获取数据的查询具有字符串 smatsumoto11
将返回同一行。我需要与 C# 字符串比较类似的语义。
我尝试了 MSDN 上提到的几个选项,但它们似乎不起作用。
有什么想法吗?
最佳答案
您的 s1
包含所谓的“全角”字符,因此您可以使用 string.Compare
并告诉它忽略字符宽度:
string.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreWidth);
(当然,如果需要,指定一个不同的CultureInfo
。)
关于c# - C#中的双字节字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4142394/