我了解到Windows在x86/x64系统上使用UTF-16LE编码。那么Linux呢?它使用哪种Unicode编码:UTF-16LE还是UTF-32?
我了解到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相似,而boost::filesystem和Unicode在Linux和Windows下则指出:
在我看来,尽管使用宽字符串初始化了
boost::filesystem::path
,但在Linux下,boost::filesystem
没有在path::native()
中提供宽字符串。
这将排除UTF-16和UTF-32,因为所有这些变体都需要宽字符支持--字符串内允许NUL字节。