【发布时间】:2011-11-05 12:17:40
【问题描述】:
我正在一个小型桌面应用程序中尝试使用 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);
出于同样的目的。
CultureInfo 的 CompareInfo 对象如何在处理全球化中的这种情况(例如日语文本)时提供更多控制,例如:CompareOptions.IgnoreKanaType(其中假名是日语的第二种形式,可以使用 CompareOptions 枚举类型从字符串中忽略)。
【问题讨论】:
标签: c# string globalization cultureinfo