|
|
在Linux设置locale选择utf8编码有很多种,比如zh_CN.utf8、en_US.utf8,难道utf8这个编码还有很多种吗?如果不是那么他么的区别是什么?
locale设置是区分大小写的吗?比如zh_CN.utf8可以写成zh_cn.utf8吗?还有就是看到有的设置utf8是写成小写,有的写成大写UTF8,这个有区别吗?对系统使用有没有影响?
我要使用中文的系统loclae的选择有很多,比如gb2312、gbk、gb18030、utf8都可以,那么选那个好点呢?刚才了解到utf8表示中文需要3个字节,gb2312、gbk等只需要2个字节,从这个角度上说是不是选择gbk要好点呢?而且windows用户用的都是gb编码、下载的音乐等的tag也是gb编码,如果用utf8的话,不转换编码就会显示成乱码,这样的话是不是更应该选择gbk编码了呢?如果象我说的那样为什么这么多人不用gbk而要用utf8呢?用utf8有没有什么特别的好处呢?
另外,既然有了unicode,现在用两个字节基本上就能包括世界上所有主流的语言,为什么又发明出utf8来呢?看他的编码方法,一个字节到底代表什么还需要解析一番、要判断一个字符串有多少个字符还需要遍历一下吧,这要效率不是大打折扣吗?干嘛发明这个呢?
最后,Linux对编码的支持是在那一层实现的?好像是glibc,是不是他内部还是全部转换成unicode来处理的? |
|