不区分大小写的 C 语言环境

不区分大小写的 C 语言环境

我正在尝试创建一个与 LC_COLLATE 变量一起使用的自定义语言环境,该变量对文本进行排序,就像 C 语言环境一样,唯一的例外是它不区分大小写进行排序。我需要这个,因为我有很多名称中带有特殊(日语)字符的文件,当使用 en_US 语言环境进行 LC_COLLATE 时,这些文件会随机分散在文件夹中。将 LC_COLLATE 设置为 C 可修复此问题;然而,它引入了区分大小写的特性,当从互联网上下载文件时,这些文件的命名可能会很烦人,因为假设大小写无关紧要。

基于 C 语言环境创建自定义语言环境非常容易,该语言环境对 AaBbCc... 而不是 ABC...abc... 进行排序,这确实在一定程度上缓解了这个问题,但我不知道如何将其实现在排序时将大写和小写拉丁字母视为相同的字符,就像使用 en_US 语言环境一样(根据我在 iso14651_t1_common 文件中看到的内容,它看起来确实比我希望的更复杂)。那么我该如何完成最后一步呢?

(我知道有些文件管理器提供了忽略大小写的选项,但我不希望仅仅因为程序缺少此选项而放弃它(就像许多程序一样)。)

相关内容