考虑以下比较:
String a = "\u00C4"; // "LATIN CAPITAL LETTER A WITH DIAERESIS"
String b = "\u0041\u0308"; // "LATIN CAPITAL LETTER A" and "COMBINING DIAERESIS"
在 C# 中比较这些丹麦文化的内容,返回 false:
Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK", false);
Console.WriteLine(a.Equals(b, StringComparison.CurrentCulture)); // false
在Java中,使用丹麦语环境对这些内容进行比较,返回true:
System.out.println(Collator.getInstance(new Locale("Danish (Denmark)").equals(a,b)); // true
我已经列出了两个环境中的所有区域设置/文化,并确认选择了正确的。我有什么遗漏吗?这种差异是怎么回事?