V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fyyz
V2EX  ›  程序员

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

  •  
  •   fyyz · 2016-12-30 13:37:39 +08:00 · 3360 次点击
    这是一个创建于 2886 天前的主题,其中的信息可能已经有所发展或是发生改变。

    系统是 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 ,而是这么多?

    9 条回复    2016-12-30 23:21:18 +08:00
    skydiver
        1
    skydiver  
       2016-12-30 13:40:06 +08:00
    UTF-8 是编码,前面是 locale
    应用程序要根据 locale 显示不同语言的信息的啊
    choury
        2
    choury  
       2016-12-30 13:40:17 +08:00
    没研究过,猜的,应该是每个只是一部分吧,毕竟 unicode 字符数量太多了
    Mdrights
        3
    Mdrights  
       2016-12-30 13:42:40 +08:00 via iPhone
    因為每個 locale 文件都只包含一個語言的編碼(?
    raysonx
        4
    raysonx  
       2016-12-30 13:46:20 +08:00
    因为多语言的程序要根据 locale 设置决定显示的语言。
    fyyz
        5
    fyyz  
    OP
       2016-12-30 13:49:59 +08:00
    @raysonx 感觉这个是正解。谢谢~
    fyyz
        6
    fyyz  
    OP
       2016-12-30 13:50:45 +08:00
    @skydiver 感谢回答,谢谢~
    congeec
        7
    congeec  
       2016-12-30 17:51:51 +08:00 via iPhone
    locale 里不仅设置语言,还有货币符号,日期格式啥的
    详情请翻手册
    wittyfox
        8
    wittyfox  
       2016-12-30 22:20:43 +08:00 via Android
    炮王
    SoloCompany
        9
    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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3638 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 04:46 · PVG 12:46 · LAX 20:46 · JFK 23:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.