在中文版 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 軟體提供各種轉換設備,例如:
字元集中的字元,例如將大寫 ASCII 轉換為小寫。
國家標準字元集之間的不同慣例,例如:
在 Combination 與 Completion 碼之間,含 KS C 5601-1987 與 KS C 5601-1992。
GB 與 EUC 之間。
CNS 11643 碼與 BIG5 之間。
在程式碼格式 (如 EUC 與 WC) 之間。
使用一般多位元組轉換公用程式的程式應該含括標頭檔 widec.h 與 wctype.h。繁體中文 Solaris 常式 (如 ishxxx) 是在 zh_TW/xctype.h 中宣告的。
使用一般多位元組轉換公用程式的程式應該含括三個標頭檔:wctype.h、widec.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。 |