C#中的双字节字符串比较

Met*_*anz 4 .net c# unicode string-comparison

我有两个字符串,一个是双字节值,另一个是单字节一个.字符串比较结果返回false,如何在忽略单字节/双字节差异后正确比较它们?

string s1 = "??????????11"
string s2 = "smatsumoto11"
Run Code Online (Sandbox Code Playgroud)

在同一场景中,如果SQL Server中有一个包含该值的nvarchar列,??????????11则使用具有该字符串的where条件获取数据的查询smatsumoto11将返回相同的行.我需要与C#字符串比较类似的语义.

我已经尝试了MSDN上提到的一些选项,但它们似乎不起作用.

有任何想法吗?

Arn*_*out 6

s1包含所谓的"全宽"字符,因此您可以使用string.Compare并告诉它忽略字符宽度:

string.Compare(s1, s2, CultureInfo.CurrentCulture, CompareOptions.IgnoreWidth);
Run Code Online (Sandbox Code Playgroud)

(当然,CultureInfo如果需要,请指定不同的.)