本節描述寬字元和字串的輸入和輸出功能、字元分類功能及韓文或中文字元集的轉換功能。亞洲版Solaris軟體採用寬字元程式庫來按照業界標準處理韓文或中文的代碼。
有中文或韓文特有的相依常式存在其語言特有的程式庫中,此程式庫連結於相關的C編譯器選項。在繁體中文Solaris中,libhle與-lhle連結。詳細資訊請參考適當的線上援助頁。
亞洲版Solaris軟體將WC定義為固定寬度、四個位元組的代碼。WC採用ANSI C資料類型wchar_t,Solaris軟體在wchar.h中將其定義如下:
typedef long wchar_h; |
在Solaris軟體中,long是四個位元組。
您可以使用本節中描述的轉換公用程式,不過您應該將iconv當成標準功能使用。
亞洲版Solaris軟體有能力可以進行各種轉換,例如:
字碼集中的字元轉換,例如,將大寫的ASCII轉換成小寫。
在國家標準字元集的不同習慣用法之間轉換,例如:
在合成碼與完成碼之間轉換,兩者都是KS C 5601-1987和KS C 5601-1992標準。
在GB與EUC之間轉換。
在CNS 11643碼與Big5之間轉換。
在代碼格式之間轉換(如EUC與WC)。
使用一般多位元組轉換公用程式的程式應該含有標題檔widec.h和wctype.h。繁體中文特有的常式(例如ishxxx)宣告於zh_TW/xctype.h中。
使用一般多位元組轉換公用程式的程式應該含有以下三個標題檔:wctype.h、widec.h以及zh_TW/xctype.h。
與上一節中描述的分類函數一樣,這些公用程式的使用可以用setlocale 函數控制。區域環境特有的常式在區域環境特有的程式庫中。以繁體中文來說,這個程式庫是libhle。程式庫可以在編譯時用C編譯器選項-lhle加以連結。
多位元組函數轉換與單位元組轉換函數toupper()和tolower()類似。這些函數可以將寬字元轉換成其它寬字元。如果需要有關轉換常式的詳細資訊,所有的區域環境請參閱線上援助頁的 wconv(3),繁體中文則要參閱 hconv(3)。
下列常式在一般中文C程式庫中:
表 B-2
函數 |
說明 |
---|---|
tohupper() |
將字碼集1的Roman小寫字元轉換成大寫。 |
tohlower() |
將字碼集1的Roman大寫字元轉換成小寫。 |
下列常式可以在CNS-11643字元集執行以字元為基礎的代碼轉換。這些常式可以在字元集中進行CNS-11643、EUC及Big5格式間的轉換。如果要使用這些常式,程式庫hle必須連結,而且要用C編譯器選項-lhle進行連結。如果需要詳細資訊,請參閱 hconv(3)線上援助頁。
表 B-3
函數 |
說明 |
---|---|
cbig5toeuc() |
將Big5字元轉換為EUC。 |
ccnstoeuc() |
將CNS字元轉換為EUC。 |
ceuctobig5() |
將EUC字元轉換為Big5。 |
ceuctocns() |
將EUC字元轉換為CNS。 |
表 B-4
函數 |
說明 |
---|---|
big5toeuc() |
將Big5字串轉換為EUC。 |
cnstoeuc() |
將CNS字串轉換為EUC。 |
euctobig5() |
將EUC字串轉換為Big5。 |
euctocns() |
將EUC字串轉換為CNS。 |