國際語言環境指南

libc 的國際化 API

Solaris 9 環境提供兩組 API:

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

當程式從檔案中取得輸入時,您可以將檔案的多位元組資料直接用輸入函式轉換成寬字元程序碼,例如fscanf(3S) 和 fwscanf(3S)等函式,或在輸入之後藉由使用轉換函式轉換,例如 mbtowc(3C) 和 mbsrtowcs(3C)。若要將輸出資料從寬字元格式轉換為多位元組字元格式,使用像是fwprintf(3S) 以及fprintf(3S) 的輸出函式,或在輸出之前套用像是 wctomb(3S) 以及wcsrtombs(3S) 的轉換函式。

本章其餘表格將說明包含在 Solaris 9 產品中的國際化 API。

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

表 2–1 libc中的訊息傳送函式

程式庫常式 

說明 

catclose()

關閉訊息目錄 

catgets()

讀取程式訊息 

catopen()

開啟訊息目錄 

dgettext()

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

dcgettext()

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

textdomain()

設定與查詢目前的網域 

bindtextdomain()

將路徑連結至訊息網域 

gettext()

從訊息資料庫取回文字串 

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

表 2–2 libc 的程式碼轉換

程式庫常式 

說明 

iconv()

轉換程式碼 

iconv_close()

取消配置轉換描述元 

iconv_open()

配置轉換描述元 

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

表 2–3 libc的正規表示式

程式庫常式 

說明 

regcomp()

編譯正規表示式 

regexec()

執行正規表示式匹配 

regerror()

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

regfree()

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

fnmatch()

符合的檔案或路徑名稱 

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

表 2–4 libc 的寬字元類別

程式庫常式 

說明 

wctype()

定義字元類別 

wctrans()

定義字元對映 

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

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

程式庫常式 

說明 

setlocale()

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

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

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

程式庫常式 

說明 

nl_langinfo()

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

localeconv()

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

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

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

程式庫常式 

說明 

isalpha()

字元是否為字母? 

isupper()

字元是否為大寫? 

islower()

字元是否為小寫? 

isdigit()

字元是否為數字? 

isxdigit()

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

isalnum()

字元為字母或數字? 

isspace()

字元是否為空白? 

ispunct()

字元是否為標點符號? 

isprint()

字元是否可以列印? 

iscntrl()

字元是否為控制字元? 

isascii()

字元是否為 ASCII 字元? 

isgraph()

字元是否為可視字元? 

isphonogram()

寬字元是否為音標符號? 

isideogram()

寬字元是否為表意文字? 

isenglish()

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

isnumber()

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

isspecial()

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

iswalpha()

寬字元是否為字母? 

iswupper()

寬字元是否為大寫? 

iswlower()

寬字元是否為小寫?  

iswdigit()

寬字元是否為數字?  

iswxdigit()

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

iswalnum()

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

iswspace()

寬字元是否為空格?  

iswpunct()

寬字元是否為標點符號? 

iswprint()

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

iswgraph()

寬字元是否為可視字元? 

iswcntrl()

寬字元是否為控制字元? 

iswascii()

寬字元是否為 ASCII 字元? 

toupper()

將小寫字元轉換為大寫。 

tolower()

將大寫字元轉換為小寫。 

towupper()

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

towlower()

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

towctrans()

寬字元對映。 

下列表格將說明 libc 的字元排序函式 API。

表 2–8 libc 的字元排序函式

程式庫常式 

說明 

strcoll()

排序字串 

strxfrm()

變換字串以進行比較 

wcscoll()

排序寬字元字串 

wcsxfrm()

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

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

表 2–9 libc 的貨幣格式

程式庫常式 

說明 

localeconv()

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

strfmon()

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

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

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

程式庫常式 

說明 

getdate()

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

strftime()

將日期與時間轉換為字串表示式。%u轉換函式符合「X/Open CAE 規格,系統介面與標頭, 第 4 期,第 2 版」。這個含是可以將工作日以十進位數字〔1,7〕表示,其中 1 是表示星期一。

strptime()

日期與時間轉換。 

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

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

程式庫常式 

說明 

btowc()

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

mbrlen()

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

mbsinit()

決定轉換物件的狀態 

mbrtowc()

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

mbsrtowcs()

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

mblen()

取得字元中的位元組數目 

mbtowc()

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

mbstowcs()

將字串轉換為寬字元字串 

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

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

程式庫常式 

說明 

wcsncat()

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

wsdup()

複製寬字元字串 

wcscmp()

比較寬字元字串 

wcsncmp()

比較寬字元字串至長度 n

wcscpy()

複製寬字元字串 

wcsncpy()

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

wcschr()

尋找寬字元字串中的字元 

wcsrchr()

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

wcslen()

 取得寬字元字串的長度

wscol()

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

wcsspn()

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

wcscspn()

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

wcspbrk()

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

wcstok()

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

wscwcs()

尋找寬字元字串中的字串 

wcstombs()

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

wctomb()

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

wcwidth()

決定寬字元的欄數位置 

wcswidth()

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

wctob()

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

wcrtomb()

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

wcstol()

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

wcstoul()

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

wcstod()

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

wcsrtombs()

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

wcscat()

串接寬字元字串 

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

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

程式庫常式 

說明 

  

wsprintf()

根據格式產生寬字元字串 

wsscanf()

格式化輸入轉換 

fwprintf()

列印格式化寬字元輸出 

fwscanf()

轉換格式化寬字元輸入 

wprintf()

列印格式化寬字元輸出 

wscanf()

轉換格式化寬字元輸入 

swprintf()

列印格式化寬字元輸出 

swscanf()

轉換格式化寬字元輸入 

vfwprintf()

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

vswprintf()

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

這份表格將說明 libc 的寬字元字串函式 API。

表 2–14 寬字元字串libc

程式庫常式 

說明 

wscasecmp()

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

wsncasecmp()

程序碼字串作業 

wcsstr()

尋找寬字元子字串 

wmemchr()

在記憶體中尋找寬字元 

wmemcmp()

比較記憶體中的寬字元 

wmemcpy()

複製記憶體中的寬字元 

wmemmove()

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

wmemset()

設定記憶體中的寬字元 

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

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

程式庫常式 

說明 

fgetwc()

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

getwchar()

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

fgetws()

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

getws()

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

fputwc()

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

fwide()

設定串流方向 

putwchar()

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

fputws()

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

putws()

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

ungetwc()

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