繁體中文 Solaris 使用者指南

附錄 A 二進制相容性套裝軟體

在中文版 OpenWindowsTM 2.x、Solaris 1.x 或 SunOS 4.x 系統下編譯的應用程式,其二進制格式與目前的中文 Solaris 發行版本不同。如果使用應用程式包含的二進制相容性套裝軟體 (BCP),較舊的應用程式不用重新編譯,仍然可以在目前的中文發行版本下運行。


注意 –

SUNWowbcp 必須含括在您的系統配置下,才能夠執行下列指令。請向系統管理員取得安裝指示。


下列 BCP 指令執行較早的 SunOS4.x、Solaris 1.x 或中文版 Chinese OpenWindows 2.x 應用程式的已編譯二進制程式碼,而不用重新編譯。不過,中文版 OpenWindows V2 應用程式將不會顯示輸出伺服器狀態區域。如下列範例所示,指令會以應用程式的舊名稱 (old_application_name) 呼叫它,並使用較舊版本的特定語言環境名稱 (old-locale) 來設定基本語言環境、輸入語言以及顯示語言:


system% old_application_name -lc_basiclocale 
old-locale -lc_inputlang old-locale 
\ -lc_displaylang old-locale

下列範例顯示的指令是用來執行目前的繁體中文 Solaris 作業系統上較舊版本 textedit 應用程式的已編譯二進制程式碼:


system% textedit -lc_displaylang tchinese -lc_basiclocale tchinese \
    -lc_inputlang tchinese

由於繁體中文 Solaris 2.x 與 1.x 應用程式之間的不相容性,您無法在這兩個應用程式之間剪下和貼上中文字元。

繁體中文測試公用程式

本節列出的每一個公用程式都受到支援,不過在本版 Solaris, 建議您使用「國際語言環境指南」中說明的 XPG4 國際化 API。

下表列出的公用程式可由許多方式測試繁體中文版 (CNS 11643) 國家標準字元集。這些公用程式還假設所測試的字元是國家標準字元集的一部份。如果字元符合說明中參考的測試需求,每個公用程式傳回為真。

下表列出之函數的引數必須是寬字元碼 (WC) 中的字元 wchar_t。如需更多資訊,請參閱亞洲專用公用程式和「hctype(3x) 線上說明手冊」。

表 A–1 繁體中文測試公用程式

公用程式 

描述 

ishalpha

測試 CNS 11643 字元集中的羅馬字元。 

ishupper

測試 CNS 11643 字元集中定義的大寫羅馬字元。 

ishlower

測試 CNS 11643 字元集中的小寫羅馬字元。 

ishdigit

測試 CNS 11643 字元集中的數字。 

ishspace

測試 CNS 11643 字元集中的空格字元。 

ishpunct

測試 CNS 11643 字元集中的標點符號字元。 

ishparen

測試 CNS 11643 字元集中的左括弧或右括弧。 

ishphontone

測試國語的語音語調。 

ishradical

測試中文字元字根。 

ishline

測試 CNS 11643 字元集中的格線符號。 

ishunit

測試 CNS 11643 字元集中的單位字元。 

ishsci

測試 CNS 11643 字元集中的科學符號。 

ishgen

測試 CNS 11643 字元集中的一般符號。 

ishgreek

測試 CNS 11643 字元集中的希臘字元。 

亞洲專用公用程式

本節說明萬用字元與字串輸入輸出、字元分類的函式,以及韓文或中文字元集的轉換函式。亞洲版 Solaris 軟體實作了一個萬用字元程式庫, 以處理符合工業標準之韓文或中文程式碼。

韓文或中文語言專用的常式存放在該語言專用的程式庫,並由相應的 C 編譯程式選項連結。在繁體中文 Solaris 軟體中,libhle 是與 -lhle 連結的。請參閱適當的線上援助頁來取得詳細資訊。

亞洲版 Solaris 軟體將 WC 定義為固定寬度的 4 位元組代碼。WC 使用 ANSI C 資料類型 wchar_t,它在 Solaris 軟體的 wchar.h 中定義如下:


typedef long wchar_h;

在Solaris 軟體,long 為四個位元組。

轉換公用程式

您可以使用本節說明的轉換公用程式,不過您應該使用 iconv 當作標準函式。

亞洲版 Solaris 軟體提供各種轉換設備,例如:

使用一般多位元組轉換公用程式的程式應該含括標頭檔 widec.hwctype.h。繁體中文 Solaris 常式 (如 ishxxx) 是在 zh_TW/xctype.h 中宣告的。

使用一般多位元組轉換公用程式的程式應該含括三個標頭檔:wctype.hwidec.h 以及 zh_TW/xctype.h

如前一節的分類函式的說明,這些公共程式的使用可用 setlocale 功能來控制。語言環境專用的常式儲存在語言環境專用的程式庫中。對於繁體中文,該程式庫是 libhle。在編譯時,可使用 C 編譯程式常式選項 -lhle 來連結該程式庫。

在同一個字碼集內轉換

多位元組轉換函式和 1 位元組轉換函式 toupper()tolower() 類似。這些函式將萬用字元轉換為其它萬用字元。如需有關轉換常式的更多資訊,請參閱所有語言環境的「wconv(3) 線上說明手冊」與繁體中文的「hconv(3) 線上說明手冊」。

下表中列出的常式位於標準中文 C 程式庫內:

表 A–2 中文 C 程式庫轉換常式

功能 

描述 

tohupper()

將字碼集 1 羅馬字母小寫轉換為大寫。 

tohlower ()

將字碼集 1 羅馬字母大寫轉換為小寫。 

轉換繁體中文字元碼

下表中列出的常式可在 CNS-11643 字元集上執行字元碼轉換。它們可將字元集中的字元轉換為 CNS-11643、EUC 與 Big5 的格式。使用這些常式時,必須用 C 編譯程式常式選項 -lhle 連結程式庫 hle。如需更多資訊,請參閱「hconv(3x) 線上說明手冊」。

表 A–3 基於字元的程式碼轉換常式

功能 

描述 

cbig5toeuc ()

將 BIG5 字元轉換為 EUC 

ccnstoeuc ()

將 CNS 字元轉換為 EUC 

ceuctobig5 ()

將 EUC 字元轉換為 BIG5 

ceuctocns ()

將 EUC 字元轉換為 CNS 

表 A–4 基於字元的程式碼轉換常式 (續)

功能 

描述 

big5toeuc ()

將 BIG5 字串轉換為 EUC。 

cnstoeuc ()

將 CNS 字串轉換為 EUC。 

euctobig5 ()

將 EUC 字串轉換為 BIG5。 

euctocns ()

將 EUC 字串轉換為 CNS。