两个字符串值相同但 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
在这种情况下,您应该将西里尔字符替换为对应的拉丁字符
可以看到here and also check here,好像有库可以用在这种情况下
我创建了 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
在这种情况下,您应该将西里尔字符替换为对应的拉丁字符
可以看到here and also check here,好像有库可以用在这种情况下