字碼集獨立性的支援
EUC 是擴充式 UNIX 編碼 (Extended UNIX® Code) 的縮寫。Solaris 作業系統支援非 EUC 的編碼方式,例如日本的 PC-Kanji (慣用名稱是 Shift_JIS)、台灣的 Big5以及中華人民共和國的 GBK。由於大部分的電腦銷售需要非 EUC 字碼集支援,目前 Solaris 環境提供了一個可同時啟用 EUC 和非 EUC 字碼集支援的穩固架構。此支援稱為字碼集獨立性 (CSI)。
CSI 的目的是從 Solaris 作業系統程式庫與指令中,移除對特定字碼集或編碼方式的依賴性。CSI 架構可以使 Solaris 作業系統支援任何 UNIX 檔案系統安全編碼。CSI 支援一些新的字碼集,例如 UTF-8、PC-Kanji 以及 Big5。
CSI 方法
透過字碼集獨立性,應用程式與平台軟體開發人員能夠將其程式碼保持獨立於任何編碼方式,例如 UTF-8。CSI 也提供在不需修改原始程式碼的情況下採用任何新編碼方式的能力。此架構方法不同於 JavaTM 國際化,因為應用程式不必受限於使用 UTF-16。
許多現有國際化的應用程式 (例如 Motif) 自動從基礎系統繼承 CSI 支援。這些應用程式在不需修改的情況下即可在新的語言環境中使用。
CSI 自始即獨立於任何字碼集。然而,下列關於檔案程式碼編碼方式 (字碼集) 的假設,仍然可適用於目前 Solaris 系統:
已啟用 CSI 的指令
本節內容將列出目前 Solaris 環境中已啟用 CSI 的指令。每個指令的線上說明手冊中所包含的屬性區段,會指出該指令是否為已啟用 CSI 的指令。
所有的指令都位在 /usr/bin 目錄中,除非另有說明。
-
/usr/lib/diffh
-
/usr/sbin/accept
-
/usr/sbin/reject
-
/usr/ucb/lpr
-
/usr/xpg4/bin/awk
-
/usr/xpg4/bin/cp
-
/usr/xpg4/bin/date
-
/usr/xpg4/bin/du
-
/usr/xpg4/bin/ed
-
/usr/xpg4/bin/edit
-
/usr/xpg4/bin/egrep
-
/usr/xpg4/bin/env
-
/usr/xpg4/bin/ex
-
/usr/xpg4/bin/expr
-
/usr/xpg4/bin/fgrep
-
/usr/xpg4/bin/lp
-
/usr/xpg4/bin/ls
-
/usr/xpg4/bin/more
-
/usr/xpg4/bin/mv
-
/usr/xpg4/bin/nice
-
/usr/xpg4/bin/nohup
-
/usr/xpg4/bin/od
-
/usr/xpg4/bin/pr
-
/usr/xpg4/bin/rm
-
/usr/xpg4/bin/sed
-
/usr/xpg4/bin/sort
-
/usr/xpg4/bin/tail
-
/usr/xpg4/bin/tr
-
/usr/xpg4/bin/vedit
-
/usr/xpg4/bin/vi
-
/usr/xpg4/bin/view
-
acctcom
-
apropos
-
batch
-
bdiff
-
cancel
-
cat
-
catman
-
chgrp
-
chmod
-
chown
-
cmp
-
col
-
comm
-
compress
-
cpio
-
csh
-
csplit
-
cut
-
diff
-
diff3
-
disable
-
echo
-
expand
-
file
-
find
-
fold
-
ftp
-
gencat
-
geteopt
-
getoptcvt
-
head
-
join
-
jsh
-
kill
-
ksh
-
lp
-
man
-
mkdir
-
msgfmt
-
news
-
nroff
-
pack
-
paste
-
pcat
-
pg
-
printf
-
priocntl
-
ps
-
pwd
-
rcp
-
red
-
remsh
-
rksh
-
rsh
-
rsmdir
-
script
-
sdiff
-
settime
-
sh
-
split
-
strconf
-
strings
-
sum
-
tabs
-
tar
-
tee
-
touch
-
tty
-
uncompress
-
unexpand
-
uniq
-
unpack
-
wc
-
whatis
-
write
-
xargs
-
zcat
已啟用 CSI 的程式庫
所有在 libc (/usr/lib/libc.so) 中的函式,幾乎都是已啟用 CSI 的函式。然而,下列在 libc 中的函式並非已啟用 CSI 的函式,而是依賴於 EUC 的函式:
-
csetcol()
-
csetlen()
-
csetno()
-
euccol()
-
euclen()
-
eucscol()
-
getwidth()
-
wcsetno()
在目前 Solaris 環境中,libgen /usr/ccs/lib/libgen.a 以及 libcurses /usr/ccs/lib/libcurses.a 皆已國際化,但沒有啟用 CSI。