我在我的ASP.NET MVC应用程序中具有以下C#代码。我尝试使用Equals
方法与culture = "vi"
比较2 string
。我的代码下面:
string culture = "vi";
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
System.Threading.Thread.CurrentThread.CurrentUICulture =
System.Threading.Thread.CurrentThread.CurrentCulture;
var CCC = string.Equals("CategId", "CATEGID", StringComparison.CurrentCultureIgnoreCase);
var xx = string.Equals("TestGID", "TestGID", StringComparison.CurrentCultureIgnoreCase);
var zz = string.Equals("id", "ID", StringComparison.CurrentCultureIgnoreCase);
结果:
ccc = false ;
xx = true;
zz = true;
我不知道为什么CCC
是false
。有什么不对的吗?如果我设置了culture = id, ko, en
等...则为CCC = true
。谁可以帮助我?
在越南语言的情况下,不等于 GI
的 gI
。 gi
( GI
)是音节初始的,有点一个字母,而 gI
是两个单独的字母。其他对是
cH != CH
kH != KH
nG != NG
nH != NH
pH != PH
qU != QU
tH != TH
tR != TR
https://en.wikipedia.org/wiki/vietnamese_language
您可以尝试
string culture = "vi";
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
System.Threading.Thread.CurrentThread.CurrentUICulture =
System.Threading.Thread.CurrentThread.CurrentCulture;
var CCC = string.Equals("CategId", "CATEGID", StringComparison.InvariantCultureIgnoreCase);
var CCC1 = string.Equals("CategId", "CATEGID", StringComparison.CurrentCultureIgnoreCase);
在此CCC
中将返回true
,但CCC1
将返回false
,因为 culture 。根据您的文化,GID
和gId
不同。