[quote=引用 10 楼 早打大打打核战争 的回复:]是的,linux的locale相当于windows的code page,localectl set-locale LANG=zh_CN.UTF-8 相当于 windows的 chcp 936,实际上原始字符还是多字节字符编码
[quote=引用 14 楼 ooolinux 的回复:] 如果用户的locale先是UTF-8,后来改为GB18030之类,那硬盘文件名编码转字节不是两种都有了?以后肯定部分乱码?
如果用户的locale先是UTF-8,后来改为GB18030之类,那硬盘文件名编码转字节不是两种都有了?以后肯定部分乱码?
[quote=引用 11 楼 ooolinux 的回复:][quote=引用 10 楼 早打大打打核战争 的回复:]是的,linux的locale相当于windows的code page,localectl set-locale LANG=zh_CN.UTF-8 相当于 windows的 chcp 936,实际上原始字符还是多字节字符编码
[quote=引用 5 楼 ooolinux 的回复:] [quote=引用 4 楼 早打大打打核战争 的回复:]似乎linux在文件系统级不支持字符编码,文件名/目录名直接存储为字节序列,如何显示取决于当前系统的配置,这个设计有点吓人
[quote=引用 5 楼 ooolinux 的回复:][quote=引用 3 楼 早打大打打核战争 的回复:]linux/unix内核使用4字节字符编码(但是API层使用UTF-8),不过是UTF-32还是UCS-4不确定,这两者只有有效范围的区别,UTF-32使用32位的低21位,UCS-4使用32位的低31位 挂接文件系统,肯定要按照文件系统的存储编码访问,否则就读写错了,一般都是通过NFS协议访问非本机支持的文件系统
[quote=引用 4 楼 早打大打打核战争 的回复:]似乎linux在文件系统级不支持字符编码,文件名/目录名直接存储为字节序列,如何显示取决于当前系统的配置,这个设计有点吓人
[quote=引用 3 楼 早打大打打核战争 的回复:]linux/unix内核使用4字节字符编码(但是API层使用UTF-8),不过是UTF-32还是UCS-4不确定,这两者只有有效范围的区别,UTF-32使用32位的低21位,UCS-4使用32位的低31位 挂接文件系统,肯定要按照文件系统的存储编码访问,否则就读写错了,一般都是通过NFS协议访问非本机支持的文件系统
是的,linux的locale相当于windows的code page,localectl set-locale LANG=zh_CN.UTF-8 相当于 windows的 chcp 936,实际上原始字符还是多字节字符编码
NT内核和NTFS文件系统都使用UTF-16字符编码(早期的NT使用UCS-2编码),包括FAT32文件系统的长文件名也使用UTF-16编码(但是短文件名使用ANSI编码存储)
linux/unix内核使用4字节字符编码(但是API层使用UTF-8),不过是UTF-32还是UCS-4不确定,这两者只有有效范围的区别,UTF-32使用32位的低21位,UCS-4使用32位的低31位 挂接文件系统,肯定要按照文件系统的存储编码访问,否则就读写错了,一般都是通过NFS协议访问非本机支持的文件系统
似乎linux在文件系统级不支持字符编码,文件名/目录名直接存储为字节序列,如何显示取决于当前系统的配置,这个设计有点吓人
15,440
社区成员
58,166
社区内容
加载中
试试用AI创作助手写篇文章吧