使用道具 举报
兄台好像没说到点子上,locale=语系_地区.{编码}才对。 如果locale=en_US.ISO8859-1的话,那的确不能显示非英文字符; 但我的locale=en_US.UTF-8,所以我的系统能够显示那些非英文字符
1.1.1. Locale环境 Locale的命名规则:<语言>_<地区名>.<字符编码名称> 对于zh_CN.GB2312而言,zh表示中文,CN表示大陆地区,GB2312表示使用的字符集为GB2312。 Locale使用一组分类,用户可以独立的操纵每一组分类。用户既能用设置环境变量的方法,也能使用setlocale设置它们。这些分类都保存在/usr/share/locale下。它们包含了: LC_COLLATE 用于比较和排序。 LC_CTYPE 用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。 LC_MONETORY 用于格式化货币单位。 LC_NUMERIC 用于格式化非货币的数字显示。 LC_TIME 用于格式化时间和日期。 LC_MESSAGES 用于控制程序输出时所使用的语言,主要是提示信息,错误信息,状态信息, 标题,标签, 按钮和菜单等。 LC_ALL 它不是环境变量,只是一个宏,可使用setlocale设置所有的LC_*环境变量。这个变量设置之后,可以废除LC_*和LANG的设置值,使得这些变量的设置值与LC_ALL的值一致。 LANG 它的值用于指定上面环境变量没有设置的所有变量值。如果指定了上面任何一个变量的值,则会废除对应的LANG值的缺省设置。
2.文件和目录名的编码是由locale来决定的还是固定格式我想很容易证明,以我为例,en_US.UTF-8的locale下创建一个文件,改名为中文,然后改变locale为 zh_CN.GB18030,看看文件名能否正常显示,如果真的不能正常显示的话就说明我猜错了.vfat文件系统下的文件目录名都是unicode格式的。
您需要 登录 才可以下载或查看,没有账号?注册
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
GMT+8, 2025-2-23 14:27 , Processed in 0.116233 second(s), 13 queries .
© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.