Я пробовал свои силы над System.Gloablization в небольшом настольном приложении. Я немного озадачен дополнительным контролем, который CultureInfo.Compare()
может предложить, чем использование метода String.Compare()
и его перегрузок.
Допустим, у меня есть две строки
String s1 = "\u3057\u3093\u304B\u3093\u305b\u3093"; //some Japanese text in Unicode
String s2 = "\u30b7\u3043\u30ab\u30f3\u30bb\u30f3"; //Some Japanese text in Unicode
CultureInfo ci = new CultureInfo("ja-JP");
String.Compare
имеет несколько перегрузок, из которых в настоящее время я бы использовал
String.Compare(String strA, String strB, CultureInfo culture, CompareOptions options)
(где CompareOptions - это перечислимый тип)
Однако я мог бы также использовать:
CompareInfo compareInfo = CompareInfo.GetCompareInfo("ja-JP");
compareInfo.Compare(String strA, String strB, CompareOptions options);
для той же цели.
Как объект CompareInfo в CultureInfo обеспечивает больший контроль при обработке такой ситуации в глобализации, как текст на японском языке, например, для: CompareOptions.IgnoreKanaType (где Kana - это вторая форма японского языка, которую можно игнорировать в строке, используя перечисляемый тип CompareOptions).