國際語言環境指南

libc 的國際化 API

目前 Solaris 環境提供兩組 API:

寬字元程式碼為固定寬度的邏輯實體單位。因此使用多位元組字元時,並不需要維護適當字元界限的記錄。

當程式讀取來自於檔案的輸入時,您可以使用像是 fscanffwscanf 的輸入函式或是在輸入之後使用像是 mbtowcmbsrtowcs 的轉換函式,自動將檔案中的多位元組資料轉換為寬字元程序碼。若要將輸出資料從寬字元格式轉換為多位元組字元格式,請使用像是fwprintffprintf 的輸出函式或在輸出之前套用像是 wctombwcsrtombs 的轉換函式。

本章其餘表格將說明包含在目前 Solaris 系統中的國際化 API。

下列表格將說明 libc 中的訊息傳送函式 API。

表 2–1 libc 中的訊息函式

程式庫常式 

描述 

bindtextdomain()

將路徑連結至訊息網域 

catclose()

關閉訊息目錄 

catgets()

讀取程式訊息 

catopen()

開啟訊息目錄 

dcgettext()

從訊息目錄中取得指定網域與種類的訊息 

dgettext()

從訊息目錄中取得指定網域的訊息 

gettext()

從訊息資料庫取回文字串 

textdomain()

設定與查詢目前的網域 

下列表格將說明 libc 中的字碼轉換函式 API。

表 2–2 libc 中的字碼轉換

程式庫常式 

描述 

iconv()

轉換字碼 

iconv_close()

取消配置轉換描述元 

iconv_open()

配置轉換描述元 

下列表格將說明 libc 中的常規表示式 API。

表 2–3 libc 中的常規表示式

程式庫常式 

描述 

fnmatch()

符合的檔案或路徑名稱 

regcomp()

編譯常規表示式 

regerror()

提供錯誤代碼與錯誤訊息的對映 

regexec()

執行常規表示式匹配 

regfree()

釋放 regcomp() 所配置的記憶體

下列表格將說明 libc 中的寬字元函式 API。

表 2–4 libc 中的寬字元類別

程式庫常式 

描述 

wctrans()

定義字元對映 

wctype()

定義字元類別 

下列表格將列出 libc 中的修改和查詢語言環境。

表 2–5 libc 中的修改和查詢語言環境

程式庫常式 

描述 

setlocale()

修改以及查詢程式的語言環境 

下列表格將列出 libc 中的查詢語言環境資料。

表 2–6 libc 中的查詢語言環境資料

程式庫常式 

描述 

localeconv()

取得目前語言環境的貨幣與數值格式資訊 

nl_langinfo()

取得目前語言環境的語言與文化資訊 

下列表格將說明 libc 中的字元分類函式 API。

表 2–7 libc 中的字元分類和轉譯

程式庫常式 

描述 

isalnum()

字元為字母或數字? 

isalpha()

字元是否為字母? 

isascii()

字元是否為 ASCII 字元? 

iscntrl()

字元是否為控制字元? 

isdigit()

字元是否為數字? 

isenglish()

寬字元是否在補充字碼集的英文字母表中? 

isgraph()

字元是否為可視字元? 

isideogram()

寬字元是否為表意文字? 

islower()

字元是否為小寫? 

isnumber()

寬字元是否為補充字碼集中的數字? 

isphonogram()

寬字元是否為音標符號? 

isprint()

字元是否可以列印? 

ispunct()

字元是否為標點符號? 

isspace()

字元是否為空白? 

isspecial()

特殊寬字元是否源自補充字碼集? 

isupper()

字元是否為大寫? 

iswalnum()

寬字元是字母字元或數字? 

iswalpha()

寬字元是否為字母? 

iswascii()

寬字元是否為 ASCII 字元? 

iswcntrl()

寬字元是否為控制字元? 

iswdigit()

寬字元是否為數字? 

iswgraph()

寬字元是否為可視字元? 

iswlower()

寬字元是否為小寫? 

iswprint()

寬字元是否為可列印的字元? 

iswpunct()

寬字元是否為標點符號? 

iswspace()

寬字元是否為空格? 

iswupper()

寬字元是否為大寫? 

iswxdigit()

寬字元是否為十六進位數字? 

isxdigit()

字元是否為十六進位數字? 

tolower()

將大寫字元轉換為小寫。 

toupper()

將小寫字元轉換為大寫。 

towctrans()

寬字元對映。 

towlower()

將大寫寬字元轉換為小寫。 

towupper()

將小寫寬字元轉換為大寫。 

下列表格將說明 libc 中的字元比較函式 API。

表 2–8 libc 中的字元比較

程式庫常式 

描述 

strcoll()

排序字串 

strxfrm()

變換字串以進行比較 

wcscoll()

排序寬字元字串 

wcsxfrm()

變換寬字元字串以進行比較 

下列表格將說明 libc 中的貨幣處理函式 API。

表 2–9 libc 中的貨幣格式

程式庫常式 

描述 

localeconv()

取得目前語言環境的貨幣格式資訊 

strfmon()

將貨幣值轉換為字串表示式 

下列表格將說明 libc 中的日期與時間格式。

表 2–10 libc 中的日期與時間格式

程式庫常式 

描述 

getdate()

轉換使用者格式日期與時間。 

strftime()

將日期與時間轉換為字串表示式。%u 轉換函式遵循系統介面和標頭第 2 版第 4 次修訂中的 X/Open CAE 規格。此函式以十進位數字 [1,7] 來表示工作日,1 代表星期一。

strptime()

日期與時間轉換。 

下列表格將說明 libc 中的多位元組處理函式 API。

表 2–11 libc 中的多位元組處理

程式庫常式 

描述 

btowc()

單一位元組至寬字元的轉換 

mblen()

取得字元中的位元組數目 

mbrlen()

取得字元中的位元組數目 (可重新開始計數) 

mbrtowc()

將字元轉換為寬字元程式碼 (可重新開始計數) 

mbsinit()

決定轉換物件的狀態 

mbsrtowcs()

將字串轉換為寬字元字串 (可重新開始計數) 

mbstowcs()

將字串轉換為寬字元字串 

mbtowc()

將字元轉換為寬字元程式碼。 

下列表格將說明 libc 中的寬字元與字串處理。

表 2–12 libc 中的寬字元和字串處理

程式庫常式 

描述 

wcrtomb()

將寬字元程式碼轉換為字元 (可重新開始計數) 

wcscat()

串接寬字元字串 

wcschr()

尋找寬字元字串中的字元 

wcscmp()

比較寬字元字串 

wcscpy()

複製寬字元字串 

wcscspn()

傳回未出現在另一個寬字元字串的字串長度 

wcslen()

取得寬字元字串的長度 

wcsncat()

將寬字元字串串接至長度 n

wcsncmp()

比較寬字元字串至長度 n

wcsncpy()

將寬字元字串複製為長度 n

wcspbrk()

傳回出現在另一個寬字元字串的字元後的字串 

wcsrchr()

從右邊開始尋找寬字元字串中的字元 

wcsrtombs()

將寬字元字串轉換為字串 (可重新開始計數) 

wcsspn()

傳回出現在另一個寬字元字串的字串長度 

wcstod()

將寬字元字串轉換為雙精度 

wcstok()

在寬字元字串之間移動記號 

wcstol()

將寬字元字串轉換為長整數 

wcstombs()

將寬字元字串轉換為多位元組字串 

wcstoul()

將寬字元字串轉換為無符號長整數 

wscwcs()

尋找寬字元字串中的字串 

wcswidth()

決定寬字元字串的欄數位置 

wctob()

寬字元至單一位元組的轉換 

wctomb()

將寬字元轉換為多位元組字元 

wcwidth()

決定寬字元的欄數位置 

wscol()

傳回寬字元字串的顯示寬度 

wsdup()

複製寬字元字串 

下列表格將說明 libc 中的格式化寬字元輸入與輸出。

表 2–13 libc 中的格式化寬字元輸入與輸出

程式庫常式 

描述 

fwprintf()

列印格式化寬字元輸出 

fwscanf()

轉換格式化寬字元輸入 

swprintf()

列印格式化寬字元輸出 

swscanf()

轉換格式化寬字元輸入 

vfwprintf()

stdarg 引數清單的寬字元格式化輸出

vswprintf()

stdarg 引數清單的寬字元格式化輸出

wprintf()

列印格式化寬字元輸出 

wscanf()

轉換格式化寬字元輸入 

wsprintf()

根據格式產生寬字元字串 

wsscanf()

格式化輸入轉換 

這個表格將說明 libc 中的寬字串函式 API。

表 2–14 libc 中的寬字串

程式庫常式 

描述 

wcsstr()

尋找寬字元子字串 

wmemchr()

在記憶體中尋找寬字元 

wmemcmp()

比較記憶體中的寬字元 

wmemcpy()

複製記憶體中的寬字元 

wmemmove()

使用重疊區域複製記憶體中的寬字元 

wmemset()

設定記憶體中的寬字元 

wscasecmp()

比較寬字元字串,忽略大小寫的差異 

wsncasecmp()

程序碼字串作業 

下列表格將說明 libc 中的寬字元輸入與輸出。

表 2–15 libc 中的寬字元輸入與輸出

程式庫常式 

描述 

fgetwc()

從串流中取得多位元組字元,並轉換為寬字元 

fgetws()

從串流中取得多位元組字串,並轉換為寬字元 

fputwc()

將寬字元轉換為多位元組字元,並放入串流中 

fputws()

將寬字元轉換為多位元組字串,並放入串流中 

fwide()

設定串流方向 

getwchar()

stdin 中取得多位元組字元,並轉換為寬字元

getws()

stdin 中取得多位元組字串,並轉換為寬字元

putwchar()

將寬字元轉換為多位元組字元,並放入stdin 串流中

putws()

將寬字元轉換為多位元組字串,並放入 stdin 串流中

ungetwc()

將寬字元後推至輸入串流中