两个字符串值相同但 CompareTo 不相同 return 0

Two string value are the same but CompareTo doesn't return 0

我创建了 wpf 应用程序。在某些情况下,我比较两个字符串值。 local值来自richtextbox,richtextbox值来自word文档。我在这个 site 上尝试了所有解决方案。但是什么都没有改变。比较等于假。我尝试用 linkedWord.Replace((char)160, (char)32);

替换文件结尾

尝试string.Compare

String.Compare(wr.Orthography, linkedWord, StringComparison.OrdinalIgnoreCase) == 0

对字节数组使用编码和SequanceEqual 等等,但找不到解决方案。 请帮我解决这个问题。

值来自richtextbox:

值来自数据库:

编辑:

Compare方法后的结果是-1

原因可能是西里尔文的 ә(ә) 和拉丁文的ə(ə) 虽然看起来一样,但不同。

检查每个字符是否相等,下面您可以看到不同之处:

foreach (char c in "bәse")
    Console.Write(((int)c).ToString("0000"));

Console.WriteLine("\n--------------------");

foreach (char c in "bəse")
    Console.Write(((int)c).ToString("0000"));

Console.WriteLine("\n--------------------");

Console.WriteLine(("bәse"=="bəse").ToString());

输出

0098124101150101
--------------------
0098060101150101
--------------------
False

DOTNETFIDDLE

在这种情况下,您应该将西里尔字符替换为对应的拉丁字符

可以看到here and also check here,好像有库可以用在这种情况下