既然 UTF-8 是能显示任意字符的,那为什么 Linux 里 locale 相关的设定里有大量的 xxx.utf8 的选项?

2016-12-30 13:37:39 +08:00
 fyyz

系统是 CentOS7 。

当我执行以下命令,输出大量的 UTF-8 的选项。为什么 UTF-8 需要指定语言?

# locale -a | grep utf8
aa_DJ.utf8
aa_ER.utf8
aa_ER.utf8@saaho
aa_ET.utf8
af_ZA.utf8
am_ET.utf8
an_ES.utf8
ar_AE.utf8
ar_BH.utf8
ar_DZ.utf8
ar_EG.utf8
ar_IN.utf8
ar_IQ.utf8
ar_JO.utf8
ar_KW.utf8
ar_LB.utf8
ar_LY.utf8
ar_MA.utf8
...

输出结果只摘录了一部分,实际上整个输出非常多,你们有 Linux 机器的也能自己去跑一下这个命令。

但是我不知道,为什么不是只有一个 UTF-8 ,而是这么多?

3358 次点击
所在节点    程序员
9 条回复
skydiver
2016-12-30 13:40:06 +08:00
UTF-8 是编码,前面是 locale
应用程序要根据 locale 显示不同语言的信息的啊
choury
2016-12-30 13:40:17 +08:00
没研究过,猜的,应该是每个只是一部分吧,毕竟 unicode 字符数量太多了
Mdrights
2016-12-30 13:42:40 +08:00
因為每個 locale 文件都只包含一個語言的編碼(?
raysonx
2016-12-30 13:46:20 +08:00
因为多语言的程序要根据 locale 设置决定显示的语言。
fyyz
2016-12-30 13:49:59 +08:00
@raysonx 感觉这个是正解。谢谢~
fyyz
2016-12-30 13:50:45 +08:00
@skydiver 感谢回答,谢谢~
congeec
2016-12-30 17:51:51 +08:00
locale 里不仅设置语言,还有货币符号,日期格式啥的
详情请翻手册
wittyfox
2016-12-30 22:20:43 +08:00
炮王
SoloCompany
2016-12-30 23:21:18 +08:00
export LC_ALL=zh_CN.utf8
ls XXX
ls: 无法访问 XXX: 没有那个文件或目录

export LC_ALL=en_US.utf8
ls XXX
ls: cannot access XXX: No such file or directory

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/331217

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX