我正在研究在我的应用程序中处理不区分大小写的问题。到目前为止,我意识到有两种不同的情况:
对于案例1,您应始终使用用户的语言环境。这意味着,例如在对列表中的项进行排序时,如果您希望这种情况不区分大小写,那么您应该使用区域设置感知的不区分大小写的字符串比较函数。
对于案例2,您不希望使用用户的语言环境似乎是合乎逻辑的,因为如果您的用户使用不同的语言环境但仍使用相同的数据集(例如,如果您正在管理库),则会产生不良影响软件,您可以使用本书的名称作为数据库中图书实例的关键,并希望处理这种不区分大小写(这是一种简化,我知道)。)
当使用STL容器(比如std :: map)时,我注意到将密钥置于大写然后对大写搜索值执行查找效率更高。这比在地图上循环时执行不区分大小写的比较更有效。对于std :: unordered_map,可能需要这样做。
然而,我意识到这也可能有奇怪的效果,我想知道Windows(也使用不区分大小写的文件名)如何处理这些情况。
E.g。德语字符ß(ringel-S)以大写字母写成SS。这似乎意味着ß.txt和SS.txt应该表示相同的文件,因此ßs.txt和sß.txt以及sss.txt和SSS.txt也应该表示相同的文件。但在我的实验中,在Windows中似乎并非如此。
所以我的问题: