Linux内核使用哪种Unicode编码?

Linux内核使用哪种Unicode编码?,linux,unicode,character-encoding,Linux,Unicode,Character Encoding,我了解到Windows在x86/x64系统上使用UTF-16LE。Linux呢?它使用哪种Unicode编码:UTF-16LE还是UTF-32?通常Unix更喜欢UTF-8。这表明Linux内核也是如此 Linux 在Linux上,UTF8是所有字符串的“本机”编码,是系统例程(如fopen())接受的格式 所以Linux在这方面是类似的,注意到 在我看来,Linux下的boost::filesystem在path::native()中没有提供宽字符串,尽管boost::filesystem::

我了解到Windows在x86/x64系统上使用UTF-16LE。Linux呢?它使用哪种Unicode编码:UTF-16LE还是UTF-32?

通常Unix更喜欢UTF-8。这表明Linux内核也是如此

Linux 在Linux上,UTF8是所有字符串的“本机”编码,是系统例程(如
fopen()
)接受的格式

所以Linux在这方面是类似的,注意到

在我看来,Linux下的
boost::filesystem
path::native()
中没有提供宽字符串,尽管
boost::filesystem::path
已用宽字符串初始化


这就排除了UTF-16和UTF-32,因为它们的所有变体都需要广泛的字符支持——字符串中允许有NUL字节。

你为什么认为Linux支持任何特定的编码?您是否在问普通Linux发行版是否假定配置文件是使用特定编码编码的,或者系统调用是否假定输入是使用特定编码编码的代码点字符串?为什么要提到处理器体系结构?你是否认为编译Linux的体系结构会影响endianness之外的编码?@Mike Samuel:我想问的是系统调用采用哪种编码?多少与此有关。BE和LE形式也有。我以为Linux只将路径视为字节,而不是UTF-8字符。@melab倾向于认为内核是不可知字符集的,并将路径视为以nul结尾的字节数组。然而,忽视用户空间约定会带来风险。