c# – String.Compare()与匈牙利CultureInfo工作不正确的特定字符串

前端之家收集整理的这篇文章主要介绍了c# – String.Compare()与匈牙利CultureInfo工作不正确的特定字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
String.Compare()与匈牙利CultureInfo工作不正确的特定字符串:
if (0 == String.Compare(@"ny",@"nY",true,new CultureInfo("hu-HU")))
  Console.WriteLine("Equal");
else
  Console.WriteLine("Not equal");

当然我想要得到“平等”答案,但事实并非如此.
如果我更改字符串它正常工作(例如“abc”和“ABC”它打印“等于”)
这似乎是特定符号的问题.

解决方法

你会期待什么?在匈牙利语中,“ny”被认为是一个字母.它可以写成“ny”,“Ny”或“NY”.但从来没有“nY”.这按预期工作:
var hu = new CultureInfo("hu-HU");
  Console.WriteLine(String.Compare("Ny","NY",hu));
  Console.WriteLine(String.Compare("ny","Ny",hu));

在匈牙利语中,除了外来词和一些名字外,他们没有字母“y”.但是当你说“nY”时,这不可能是“ny”字母.所以也许.NET将它视为两个字母.

有谁知道匈牙利语吗?听到他们的意见可能很有意思.但我很确定字符串“nY”永远不会出现在“自然”匈牙利语中.

原文链接:https://www.f2er.com/csharp/100581.html

猜你在找的C#相关文章