不区分区域性的字符串操作

如果要创建旨在按区域性向用户显示结果的应用程序,那么针对特定区域性对数据进行比较和排序主题中描述的区分区域性的字符串操作无疑是一个有利条件。 默认情况下,区分区域性的方法从当前线程的 CurrentCulture 属性中获得要使用的区域性。 有关如何设置此属性的更多信息,请参见 使用 CurrentCulture 属性

请注意,并非在所有场合都需要执行区分区域性的字符串操作。 当结果不应依赖于区域性时,使用区分区域性的操作可能会导致应用程序代码在遇到使用自定义大小写映射和排序规则的区域性时失败。

字符串操作是否应该区分区域性取决于应用程序使用结果的方式。 向用户显示结果的字符串操作通常应是区分区域性的。 例如,如果应用程序在列表框中显示本地化字符串的排序列表,则应用程序应执行区分区域性的排序操作。

内部使用的字符串操作的结果通常应该是不区分区域性的。 一般而言,如果应用程序使用的是不向用户显示的文件名、持久性格式或符号信息,则字符串操作的结果不应因区域性而异。 例如,如果应用程序比较字符串以确定它是否是可识别的 XML 标记,则这种比较不应是区分区域性的。 此外,如果安全决策基于字符串比较或大小写更改操作的结果,则操作应该不区分区域性,以确保结果不受 CurrentCulture 值的影响。

无论要开发的应用程序是否包含用来处理本地化和全球化问题的代码,您都应该对默认情况下检索区分区域性的结果的 .NET Framework 方法有所了解。 本主题旨在阐释应用程序如何正确地使用这些方法来获得不区分区域性的结果。

请参见

概念

自定义大小写映射和排序规则

针对特定区域性对数据进行比较和排序

其他资源

编码和本地化