我已经了解到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内核也是如此。