• 请不要在回答技术问题时复制粘贴 AI 生成的内容
fyyz
V2EX  ›  程序员

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

  •  
  •   fyyz · Dec 30, 2016 · 4491 views
    This topic created in 3596 days ago, the information mentioned may be changed or developed.

    系统是 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 replies  •  2016-12-30 23:21:18 +08:00
    skydiver
    skydiver
    Dec 30, 2016
    1
    UTF-8 是编码,前面是 locale
    应用程序要根据 locale 显示不同语言的信息的啊
    choury
    choury
    Dec 30, 2016
    2
    没研究过,猜的,应该是每个只是一部分吧,毕竟 unicode 字符数量太多了
    Mdrights
    Mdrights
    Dec 30, 2016 via iPhone
    3
    因為每個 locale 文件都只包含一個語言的編碼(?
    raysonx
    raysonx
    Dec 30, 2016
    4
    因为多语言的程序要根据 locale 设置决定显示的语言。
    fyyz
    fyyz
    OP
    Dec 30, 2016
    5
    @raysonx 感觉这个是正解。谢谢~
    fyyz
    fyyz
    OP
    Dec 30, 2016
    6
    @skydiver 感谢回答,谢谢~
    congeec
    congeec
    Dec 30, 2016 via iPhone
    7
    locale 里不仅设置语言,还有货币符号,日期格式啥的
    详情请翻手册
    wittyfox
    wittyfox
    Dec 30, 2016 via Android
    8
    炮王
    SoloCompany
    SoloCompany
    Dec 30, 2016
    9
    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
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2813 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 13:47 · PVG 21:47 · LAX 05:47 · JFK 08:47
    ♥ Do have faith in what you're doing.