【发布时间】:2010-12-11 04:36:33
【问题描述】:
directory_iterator 按预期使用 Visual Studio 和 Xcode 返回 UTF8。
但是,wdirectory_iterator 使用 Visual Studio 返回 UTF16,使用 Xcode 返回 UTF8,尽管返回的是 wchar_t 字符串。
我可以改变什么来让 wdirectory_iterator 返回 UTF32?
question I asked previously 的回答表明可能需要更改语言环境,但是根据“locale -a”,唯一可用的语言环境是
en_GB、en_GB.ISO8859-1、en_GB.ISO8859-15、en_GB.US-ASCII、en_GB.UTF-8 都是 8 位的,可能除了 en_GB
我尝试了 en_GB 以防它可能不是 8 位,但这会导致 boost::filesystem::exists 抛出 boost::filesystem::wpath::to_external 转换异常。
【问题讨论】:
-
但我得到的是 UTF-8,而不是 16 或 32,而且我发现的所有参考资料都表明 Mac wchar_t 是 UTF-32。也许我必须从 UTF-8 进行转换,但我想先确定我不会错过更标准的东西。
-
对不起,大卫,我错了。在 Mac 上,
wchar_t的原生编码取决于wchar_t的字节序和大小的组合。