winapi - Win32文件名比较

标签 winapi case-insensitive

有谁知道Win32处理不区分大小写的文件名时使用的区域性设置?

这是否根据用户的区域性而有所不同,还是Win32使用的区域性规则不变?

最佳答案

大概的答案是
Comparing Unicode file names the right way

基本上,建议将两个字符串都大写(使用CharUpperCharUpperBuffLCMapString),然后使用二进制比较(即memcmp或wmemcmp,而不是具有不变语言环境的CompareString)进行比较。文件系统不执行Unicode规范化,并且大小写规则不依赖于语言环境设置。

不幸的是,在处理字符的大小写规则在不同版本的Unicode上发生了变化的情况时,模棱两可的情况不尽如人意,但效果却差不多。

关于winapi - Win32文件名比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/410502/

相关文章:

python - 在 Windows 中显示资源管理器的文件属性对话框

java - Android 在排序列表时忽略大小写

php - PHP中不区分大小写的字符串比较

Windows关闭然后启动后c++服务不会启动

c++ winapi CreateProcess Suspended被识别为恶意

c# - 为什么我不能在 C# 中定义不区分大小写的字典?

macos - 不区分大小写的搜索并用 sed 替换

c++ - 如何使 map::find 操作不区分大小写?

c++ - 如何使用 ATA 命令读取磁盘的特定扇区?

子进程(通过 CreateProcess)在带有重定向 stdout 和 stdin 的 getch() 上停止