區域表示 Locale 的概念

2021-04-13 01:09:58 字數 1028 閱讀 5292

locale 是軟體在執行時的語言環境, 它包括語言(language), 地域 (territory)和字符集(codeset). 其格式為: 語言[_地域[.字符集]]. 如對中文gbk字符集, locale的格式是:zh_cn.gbk. 

locale 包含了以下分類:

lc_collate, 用於比較和排序. 排序對中文來說也比較重要, 但是現在的 glibc中的locale對中文支援有些問題. 漢字排序的 的方式有許多種, 按照 發音(漢語拼音)或者漢字筆畫來排序 是比較容易被接受的.

lc_ctype, 用於字元分類

lc_monetory, 用於貨幣單位

lc_numeric, 用於數字顯示格式. 下面是不同國家的在貨幣符號 和數字格 式上的不同:

lc_time, 用於時間和日期. 時間可以用12小時或者24小時的 格式來計算. 在小時和分鐘之間可以用逗點或者冒號隔開. 下面 是一些locale設定的時 間和日期的格式:

lc_messages, 用於國際化資訊, 主要是提示資訊,錯誤資訊, 狀態資訊, 標 題, 標籤, 按鈕和選單等.

locale 通過ansi c 函式setlocale(分類, locale)來初始化locale 資料. 當locale設定為空時, locale的值便從系統的環境變數中取得. 為了 方便應用 軟體, 設定所有的分類, 可以採用下述方式:

setlocale(lc_all, "");

如果不成功, 該函式返回null. 函式應該回落到setlocale(lc_all,"c").  

我們可以比較一下:

#include

#include

#include

#include

int main()

{char s="賓館", i;

wchar_t ws[10]= l"";

puts(s);

for(i=0; i!注釋的語句,如果去掉這個語句,那麼可以看到輸出的編碼 和 有這個 setlocale 的時候,編碼是不一樣,其區別就在於所使用的區域表示的差別。

區域表示 Locale 的概念

locale 是軟體在執行時的語言環境,它包括語言 language 地域 territory 和字符集 codeset 其格式為 語言 地域 字符集 如對中文gbk字符集,locale的格式是 zh cn.gbk.locale 包含了以下分類 lc collate,用於比較和排序.排序對中文來說也...

ubuntu區域語言 locale 設定

第一步,編輯檔案 sudo gedit var lib locales supported.d local zh cn.utf 8 utf 8 zh cn gb2312 zh cn.gbk gbk en us.utf 8 utf 8 fr fr iso 8859 1 zh cn.gb18030 gb...

centos7 locale 區域語言設定

1.語言 參考 language lang value englist us en us.utf8 assamese as in.utf8 bengali bn in.utf8 chinese simplified zh cn.utf8 chinese traditional zh tw.utf8 ...