日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux中的本地化

發布時間:2023/12/18 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux中的本地化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

linux中顯示亂碼了怎么辦?這時候需要設置對本地化。知其然還要知其所以然,下面一步步來為你截開linux中的本地化的神秘面紗。

原文:小宇的博客

從locale說起

locale翻譯過來是本地的意思。linux中的locale工具能夠輸出當前本地化信息,或者輸出所有支持的本地化、編碼信息。
在linux中執行locale命令可以顯示出當前的本地化信息。

$ locale LANG=zh_CN.UTF-8 LANGUAGE=zh_CN:zh LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_PAPER="zh_CN.UTF-8" LC_NAME="zh_CN.UTF-8" LC_ADDRESS="zh_CN.UTF-8" LC_TELEPHONE="zh_CN.UTF-8" LC_MEASUREMENT="zh_CN.UTF-8" LC_IDENTIFICATION="zh_CN.UTF-8" LC_ALL=

本地化信息包含了13個變量

  • LC_CTYPE
    用于字符分類和字符串處理(大小寫轉換),控制所有字符的處理方式,包括字符編碼,字符是單字節還是多字節,如何打印等。是最重要的一個環境變量。
  • LC_COLLATE
    字符的比較和排序規則。
  • LC_MONETARY
    貨幣格式。
  • LC_NUMERIC
    非貨幣的數字顯示格式。
  • LC_TIME
    時間和日期格式。
  • LC_MESSAGES
    提示信息的語言。另外還有一個LANGUAGE參數,它與LC_MESSAGES相似,但如果該參數一旦設置,則LC_MESSAGES參數就會失效。LANGUAGE參數可同時設置多種語言信息,如LANGUANE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”。
  • LANG
    LC_*的默認值,是最低級別的設置,如果LC_*沒有設置,則使用該值。類似于 LC_ALL。如果LANG設置了,別的變量也設置成這個值。
  • LC_ALL
    它是一個宏,如果該值設置了,則該值會覆蓋所有LC_*的設置值。注意,LANG的值不受該宏影響。
  • LC_PAPER
    紙張大小。
  • LC_NAME
    名稱的格式
  • LC_ADDRESS
    地址的格式
  • LC_TELEPHONE
    電話的格式
  • LC_MEASUREMENT
    度量單位
  • 可以看各種變量的值都是zh_CN.UTF-8,它表示什么意思呢?
    分為2個部分:
    zh_CN : 是語言.地點信息
    UTF-8 : 是字符編碼信息
    其書寫格式是語言[_地域[.字符集]]
    比如zh_CN.UTF-8說明現在用中文,地處中華人民共和國,用的是UTF-8字符編碼。
    比如zh_TW.BIG5說名現在用中文,地處臺灣,用的是大五碼字符集
    可以通過locale -a命令查看支持的地點

    $ locale -a C #最早期簡單的C語言環境 C.UTF-8 en_US.utf8 #美國 POSIX #posix標準 zh_CN.utf8 #中國 zh_SG.utf8 #新加坡

    可以通過locale -m命令查看支持的編碼

    $ locale -m | grep BIG BIG5 BIG5-HKSCS UTF-8 GB18030 GB2312 GBK GB_1988-80

    有關這些信息都放在/usr/share/i18n文件夾下:

    /usr/share/i18n |-- SUPPORTED |-- charmaps | |-- ANSI_X3.110-1983.gz | |-- ANSI_X3.4-1968.gz | |-- ARMSCII-8.gz | |-- ASMO_449.gz | |-- BIG5-HKSCS.gz | |-- BIG5.gz | |-- UTF-8.gz | |-- VIDEOTEX-SUPPL.gz | |-- VISCII.gz | `-- WINDOWS-31J.gz `-- locales|-- POSIX|-- aa_DJ|-- aa_ER|-- aa_ER@saaho|-- aa_ET|-- af_ZA|-- zh_CN|-- zh_HK|-- zh_SG|-- zh_TW`-- zu_ZA

    locales文件夾下面其實都是可編輯的文本文件。有興趣的可以打開試試。

    有時候因為編碼的不同,顯示出來的是亂碼。那么如何設置呢?

    如何設置編碼

    設定locale就是設定12大類的locale分類屬性,即13個LC_*。除了這13個變量可以設定以外,為了簡便起見,還有兩個變量:LC_ALL和LANG。它們之間有一個優先級的關系:

    LC_ALL > LANG

    可以這么說,LC_ALL是最上級設定或者強制設定,而LANG是默認設定值。

    1、如果你設定了LC_ALL=zh_CN.UTF-8,那么不管LC_*和LANG設定成什么值,它們都會被強制服從LC_ALL的設定,成為 zh_CN.UTF-8。

    2、假如你設定了LANG=zh_CN.UTF-8,并且沒有設定LC_ALL的話,那么系統的locale設定以LC_*=zh_CN.UTF-8。

    PS: 除了環境變量設置對,如果使用的是圖形化終端,還需要在終端設置相應的編碼。

    總結

    以上是生活随笔為你收集整理的linux中的本地化的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。