我了解到Windows在x86/x64系统上使用UTF-16LE。Linux呢?它使用哪种Unicode编码:UTF-16LE还是UTF-32?
http://www.xsquawkbox.net/xpsdk/mediawiki/Unicode表示
Linux
在Linux上,UTF8是所有字符串的"本机"编码,是
fopen()
等系统例程所接受的格式。
因此,Linux在这方面与Plan 9类似,Linux和Windows下的boost::filesystem和Unicode注意到
在我看来,Linux下的
boost::filesystem
在path::native()
中没有提供宽字符串,尽管boost::filesystem::path
已经用宽字符串初始化。
这将排除UTF-16和UTF-32,因为它们的所有变体都需要广泛的字符支持——字符串中允许NUL字节。
Unix通常更喜欢UTF-8。本文建议Linux内核也这样做。