EUC 是擴充式 UNIX 編碼 ( Extended UNIX Code) 的縮寫。Solaris 9 作業環境支援非 EUC 的編碼方式,例如日本的 PC-Kanji(較為人知的 Shift_JIS)、台灣的 Big5、以及中華人民共和國的 GBK。 由於大部份的電腦市場要求支援非 EUC 字碼集,因此 Solaris 9 環境提供穩固的框架以便能同時支援 EUC 與非 EUC 的字碼集。此支援稱為字碼集獨立,或 CSI。
CSI 的目標是從 Solaris 作業環境程式庫與指令中移除對特定字碼集或編碼方式的相依性。CSI 架構允許 Solaris 作業環境支援任何 UNIX 檔案系統安全編碼方式。CSI 支援一些新的字碼集,例如 UTF-8、PC-Kanji、以及 Big5。
字碼集獨立使得應用程式與平台軟體開發者能夠將其程式碼保持獨立於任何編碼方式,例如 UTF-8,並提供在不需修改原始程式碼的情況下採用任何新編碼方式的能力。此架構方法與 JavaTM 國際化不同之處,在於 Java 要求應用程式是 UTF-16– 相依。
許多現有國際化的應用程式(例如,Motif)自動從基礎系統繼承 CSI 支援。這些應用程式在不需修改的情況下即可在新的語言環境中使用。
CSI 自始即獨立於任何字碼集。然而,下列關於檔案程式碼編碼方式的假設(字碼集)仍然可適用於 Solaris 9 環境:
在支援空終止多位元組字串時,多位元組字元中並不會顯示NULL 位元組值(0x00)。
在支援 UNIX 路徑名稱時,多位元組字元中並不會顯示 ASCII Slash 字元位元組值(0x2f)。
本章節內容將列出 Solaris 9 環境中啟用 CSI 的指令。每個指令的線上援助頁都有屬性區段,指明指令是否已啟用 CSI 。
所有的指令都在/usr/bin目錄,除非另外說明。
幾乎所有在libc (/usr/lib/libc.so ) 中的函式都已啟用 CSI。然而,下列在 libc 中的函式並沒有啟用 CSI,因為它們是與 EUC 相依的函式:
csetcol()
csetlen()
euccol()
euclen()
eucscol()
getwidth()
csetno()
wcsetno()
在 Solaris 9 產品中,libgen /usr/ccs/lib/libgen.a 以及 libcurses /usr/ccs/lib/libcurses.a 皆已國際化但是沒有啟用 CSI。