最近我正在处理开发中文件夹中的开放泰语命名文件的问题。通常我们这样做:
Java:带"explorer /n,/select,/folder/อักษรไทย.jpg"
的ProcessBuilder
Windows C API:ShellExecuteW L"explorer" L"open" L"/n,/select,/folder/อักษรไทย.jpg"
它们都适用于WinXP系统,但Windows Vista和Windows 7都失败了。
奇怪的是,当我从文件名中删除组合字符时,它们都可以正常工作:从อักษรไทย到อกษรไทย。
我还尝试过其他UTF8语言,如中文和日文,它们的字符集中都没有组合字符。
此外,Java awt函数`Desktop.open(File)可以很好地打开这些文件夹或文件并组合泰语字符,但不幸的是,我发现这样的功能可以选择文件夹中的文件。
你对这种差异有什么看法吗?