繁體中文 Solaris 使用者指南

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

在中文 OpenWindows 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) 來呼叫應用程式、設定基本語言環境、 輸入語言、並使用舊版本的特定語言環境名稱 (oldlocale) 來顯示語言:


system% old_application_name -lc_basiclocale 

oldlocale -lc_inputlang oldlocale 

\ -lc_displaylang oldlocale 

下列範例顯示的指令可在目前的繁體中文版 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

函式 

說明 

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。