本節描述寬字符和字符串輸入輸出的功能,字符分類和簡體中文字符集轉換功能等。Solaris 2.7 軟件配有一個寬字符庫以根據工業標准處理簡體中文字符代碼。
與中文語言相關的例程收集在它們自己的特指語言庫中,該庫按其相應的 C 編譯器選項連接。簡體中文 Solaris 的 libcle 庫依選項 -lcle 實行連接。
要獲得更多的信息,參見有關的手冊頁。
亞洲版 Solaris 軟件將 WC 定義為定常寬度、四字節代碼。WC 使用 ANSI C 數據類型 wchar_t, Solaris 軟件在 wchar.h 頭文件中將該類型定義為:
typedef long wchar_h;
在 Solaris 軟件環境裡,long 是四字節的數據類型。
轉換工具
本節所描述的轉換功能可供使用,然而您應該將 iconv() 作為標准功能使用。
簡體中文 Solaris 軟件提供了用於各種轉換的工具,例如:
在一個代碼集裡的字符的轉換,例如將 ASCII 大寫字母轉換成小寫字母。
在國家標准字符集不同的協議之間的轉換,例如 GB 和 EUC 之間的轉換。
代碼格式之間的轉換 (例如 EUC 和 WC 之間的轉換)。
使用通用多字節轉換工具的程序應該包含頭文件 widec.h 和 wctype.h。簡體中文 Solaris 的特別例程 (例如 isc xxx) 在頭文件 zh/xctype.h 中被聲明。
使用通用多字節轉換工具的程序應該包含三個頭文件:wctype.h、widec.h、和 zh/xctype.h。
locale/xctype.h 頭文件聲明與中文語言環境相關的例程,這些例程的名字具有相同的形式 isc xxxx:
像前節描述的分類功能一樣,這些功能的使用受 setlocale 功能所控制 (在本章其他地方和其他章中描述)。
與語言環境相關的轉換例程 (例如中文 cgbtoeuc) 收集在 libcle 庫裡。
編譯期間,這個庫可以用 C 語言編譯器選項 -lcle 進行連接。
代碼集內的轉換
多字節轉換功能與單字節轉換功能 toupper 和 tolower 相似。這些功能將寬字符轉換成其他寬字符。要獲得更多關於轉換例程的信息,參見 wconv (3) 和 cconv (3) 手冊頁。
以下例程收集在常規中文 C 庫裡:
簡體中文大小寫轉換功能 (在 zh/xctype.h 中聲明):
tocupper
將代碼集 1 中的小寫羅馬字母轉換成大寫字母
toclower
將代碼集 1 中的大寫羅馬字母轉換成小寫字母
簡體中文代碼集之間的轉換
簡體中文字符集中,代碼集 0 裡的羅馬字符和數字在代碼集 1 裡重復出現。以下功能測試寬字符。
簡體中文代碼集轉換功能塊:
atocgb
將在 ASCII (代碼集 0) 裡的字母或數字字符轉換成相應的在 GB-2312-80 (代碼集 1) 裡的字符。
cgbtoa
將在 GB-2312-80 (代碼集 1) 裡的字母或數字字符轉換成相應的在 ASCII (代碼集 0) 裡的字符。
要獲得更多的關於這些例程的信息,參見手冊頁 cconv() (3x)。
簡體中文字符代碼轉換
以下例程在 GB-2312-80 字符集上作基於字符的代碼轉換。它們在 EUC 格式和 GB-2312-80 格式之間對字符和字符串作轉換。要使用這些例程必須連接 lib cle 庫,可使用 C 語言編譯器選項 -lcle 實現連接。要獲得更多的信息,參見 cconv (3x) 手冊頁。
簡體中文基於字符的功能 :
cgbtoeuc
將一個字符從 GB-2312-80 格式 (7 位) 轉換成 EUC 格式
scgbtoeuc
將一個字符串從 GB-2312-80 格式 (7 位) 轉換成 EUC 格式
sncgbtoeuc
將一個字符串的一部分從 GB-2312-80 格式 (7 位) 轉換成 EUC 格式
euctocgb
將一個字符從 EUC 格式轉換成 GB-2312-80 格式 (7 位)
seuctocgb
將一個字符串從 EUC 格式轉換成 GB-2312-80 格式 (7 位)
sneuctocgb
將一個字符串的一部分從 EUC 格式轉換成 GB-2312-80 格式 (7 位)
copyright © 萬盛學電腦網 all rights reserved
|