支持代码集独立性
EUC 是扩展 UNIX® 代码的缩写。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 特征。