⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000004.htm

📁 一份很好的linux入门资料
💻 HTM
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;yanglc&nbsp;(魂归燕园),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;五&nbsp;目前中文化中存在的问题&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Sun&nbsp;May&nbsp;14&nbsp;22:33:07&nbsp;2000)&nbsp;<BR>&nbsp;<BR>www.linuxforum.net&nbsp;<BR>&nbsp;<BR>Subject&nbsp;Linux&nbsp;国际化本地化和中文化(五)&nbsp;&nbsp;&nbsp;<BR>Posted&nbsp;by&nbsp;yumj&nbsp;&nbsp;<BR>Posted&nbsp;on&nbsp;5/12/2000&nbsp;10:35&nbsp;AM&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>五&nbsp;目前中文化中存在的问题&nbsp;<BR>&nbsp;<BR>现有的国际化标准中存在许多问题,&nbsp;问题的原因主要出自目前的&nbsp;国际化架构.&nbsp;对于中&nbsp;<BR>文化来说,&nbsp;这些问题显得更加突出.&nbsp;<BR>&nbsp;<BR>1.&nbsp;编码动态切换的问题&nbsp;<BR>&nbsp;<BR>对中文软件来说,&nbsp;同时支持多内码(GB和Big5)是比较完善的中文软件,&nbsp;但是动态&nbsp;<BR>切换内码,&nbsp;特别是切换软件界面(如菜单项)的内码,&nbsp;是受到信息&nbsp;(Message)国际&nbsp;<BR>化中&nbsp;gettext&nbsp;的限制的.&nbsp;一般来说,&nbsp;一旦软件载入,&nbsp;所有&nbsp;文本信息便被初始化,&nbsp;<BR>而且在整个过程中不会再重新装载信息.&nbsp;退一步说,&nbsp;即使重新装载了信息,&nbsp;由于&nbsp;<BR>所装载信息的长度发生了变化,&nbsp;软件界面调整&nbsp;布局也是十分困难的.&nbsp;<BR>&nbsp;<BR>所以现有软件的动态编码切换仅仅是在部分区域实现,&nbsp;例如Netscape.&nbsp;遗憾的是,&nbsp;<BR>Netscape的编码切换并不彻底,&nbsp;它切换的仅仅是显示部分,&nbsp;输入&nbsp;部分仍然有问&nbsp;<BR>题.&nbsp;比如在zh_CN.GBK的环境下启动Netscape,&nbsp;当切换到有&nbsp;输入条的繁体中文页&nbsp;<BR>面时,&nbsp;如果采用输入软件自动识别Input&nbsp;Context的&nbsp;编码的方式,&nbsp;仍然会认为&nbsp;<BR>Netscape是GB编码,&nbsp;输入结果不正确.&nbsp;如果输入&nbsp;Big5编码,&nbsp;必须缩定输出的编码&nbsp;<BR>为Big5.&nbsp;Chinput在这方面做了一些尝试,&nbsp;结论是可以输入Big5编码,&nbsp;但是在输入&nbsp;<BR>条中的显示不正确.&nbsp;<BR>&nbsp;<BR>一般来说,&nbsp;使用中文平台来动态切换编码更容易实现.&nbsp;在中文Linux&nbsp;的发布版本&nbsp;<BR>中,&nbsp;有几个是可以使用中文平台来实现动态切换编码的,&nbsp;其原理&nbsp;十分简单,&nbsp;只要&nbsp;<BR>在应用程序或X服务器把某个窗口的编码状态记住就行了,&nbsp;以后的文本显示和输入&nbsp;<BR>都以此编码为标准.&nbsp;这种方法的缺点是,&nbsp;应用程序&nbsp;初始界面上的中文由于转化了&nbsp;<BR>编码变成了乱码.&nbsp;<BR>&nbsp;<BR>2.&nbsp;中文编码自动识别问题&nbsp;<BR>&nbsp;<BR>在文本浏览,网页浏览或网页翻译时,&nbsp;通常需要自动识别汉字的内码,&nbsp;但是中文的&nbsp;<BR>GB编码和Big5编码有重叠区域,&nbsp;所以很难区分开.&nbsp;目前公开&nbsp;源代码的识别软件很&nbsp;<BR>少,&nbsp;识别结果不能令人满意,&nbsp;远没有达到目前商业软件&nbsp;的识别水平.&nbsp;<BR>&nbsp;<BR>3.&nbsp;Linux上的中文平台到国际化的过渡&nbsp;<BR>&nbsp;<BR>但是从长远的角度看,&nbsp;因为中文在对中文显示和输入上与国际化标准&nbsp;存在很大差&nbsp;<BR>异,&nbsp;所以亟需一种从中文平台到国际化标准的过渡性方案.&nbsp;在&nbsp;过渡的过程中,&nbsp;中&nbsp;<BR>文平台可能会和国际化标准共同存在一段时间.&nbsp;<BR>&nbsp;<BR>以CLE和TurboLinux为例,&nbsp;它们在早期的版本中都采用了中文平台来&nbsp;支持中文的&nbsp;<BR>显示和输入,&nbsp;随着支持国际化标准的软件的增多,&nbsp;逐步采用了&nbsp;中文平台和国际化&nbsp;<BR>标准共同存在的版本作为过渡性版本.&nbsp;到目前为止,&nbsp;已经&nbsp;在缺省情况下放弃中文&nbsp;<BR>平台的使用.&nbsp;中文平台只是作为残留物包含在发布&nbsp;版本中.&nbsp;<BR>&nbsp;<BR>4.&nbsp;Linux&nbsp;文档中文化&nbsp;<BR>&nbsp;<BR>Linux文档,&nbsp;主要是指Linux上的一些命令帮助文档(man文件),&nbsp;软件&nbsp;手册和说明,&nbsp;<BR>软件本身的Message文件(po).&nbsp;目前在这方面的工作还缺乏&nbsp;统一的管理和广大&nbsp;<BR>Linux爱好者的参与.&nbsp;<BR>&nbsp;<BR>参考资料&nbsp;<BR>&nbsp;<BR>*&nbsp;Unicode:&nbsp;<A HREF="http://www.unicode.org/">http://www.unicode.org/</A>&nbsp;<BR>*&nbsp;香港增补字符集:&nbsp;<A HREF="http://www.digital21.gov.hk/chi/hkscs/introduction.html">http://www.digital21.gov.hk/chi/hkscs/introduction.html</A>&nbsp;<BR>*&nbsp;CJK&nbsp;有关信息:&nbsp;<A HREF="ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/cjk.inf">ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/cjk.inf</A>&nbsp;<BR>*&nbsp;Linux国际化资料:&nbsp;<A HREF="http://i18n.linux.org.tw/">http://i18n.linux.org.tw/</A>&nbsp;<BR>*&nbsp;Linux国际化标准:&nbsp;<A HREF="http://www.li18nux.org/.">http://www.li18nux.org/.</A>&nbsp;<A HREF="http://">http://</A>&nbsp;<BR>*&nbsp;MicroSoft&nbsp;国际化:&nbsp;<A HREF="http://www.microsoft.com/globaldev/">http://www.microsoft.com/globaldev/</A>&nbsp;<BR>&nbsp;<BR>六&nbsp;附录&nbsp;<BR>&nbsp;<BR>1.&nbsp;宽字符处理函数函数与普通函数对照表&nbsp;<BR>&nbsp;<BR>字符分类:&nbsp;<BR>&nbsp;<BR>宽字符函数&nbsp;普通C函数&nbsp;描述&nbsp;<BR>iswalnum()&nbsp;isalnum()&nbsp;测试字符是否为数字或字母&nbsp;<BR>iswalpha()&nbsp;isalpha()&nbsp;测试字符是否是字母&nbsp;<BR>iswcntrl()&nbsp;iscntrl()&nbsp;测试字符是否是控制符&nbsp;<BR>iswdigit()&nbsp;isdigit()&nbsp;测试字符是否为数字&nbsp;<BR>iswgraph()&nbsp;isgraph()&nbsp;测试字符是否是可见字符&nbsp;<BR>iswlower()&nbsp;islower()&nbsp;测试字符是否是小写字符&nbsp;<BR>iswprint()&nbsp;isprint()&nbsp;测试字符是否是可打印字符&nbsp;<BR>iswpunct()&nbsp;ispunct()&nbsp;测试字符是否是标点符号&nbsp;<BR>iswspace()&nbsp;isspace()&nbsp;测试字符是否是空白符号&nbsp;<BR>iswupper()&nbsp;isupper()&nbsp;测试字符是否是大写字符&nbsp;<BR>iswxdigit()&nbsp;isxdigit()&nbsp;测试字符是否是十六进制的数字&nbsp;<BR>&nbsp;<BR>大小写转换:&nbsp;<BR>&nbsp;<BR>宽字符函数&nbsp;普通C函数&nbsp;描述&nbsp;<BR>towlower()&nbsp;tolower()&nbsp;把字符转换为小写&nbsp;<BR>towupper()&nbsp;toupper()&nbsp;把字符转换为大写&nbsp;<BR>&nbsp;<BR>字符比较:&nbsp;<BR>&nbsp;<BR>宽字符函数&nbsp;普通C函数&nbsp;描述&nbsp;<BR>wcscoll()&nbsp;strcoll()&nbsp;比较字符串&nbsp;<BR>&nbsp;<BR>日期和时间转换:&nbsp;<BR>&nbsp;<BR>宽字符函数&nbsp;描述&nbsp;<BR>strftime()&nbsp;根据指定的字符串格式和locale设置格式&nbsp;<BR>化日期和时间&nbsp;<BR>wcsftime()&nbsp;根据指定的字符串格式和locale设置格式&nbsp;<BR>化日期和时间,&nbsp;并返回宽字符串&nbsp;<BR>strptime()&nbsp;根据指定格式把字符串转换为时间值,&nbsp;<BR>是strftime的反过程&nbsp;<BR>&nbsp;<BR>打印和扫描字符串:&nbsp;<BR>&nbsp;<BR>宽字符函数&nbsp;描述&nbsp;<BR>fprintf()/fwprintf()&nbsp;使用vararg参量的格式化输出&nbsp;<BR>fscanf()/fwscanf()&nbsp;格式化读入&nbsp;<BR>printf()&nbsp;使用vararg参量的格式化输出到标准输出&nbsp;<BR>scanf()&nbsp;从标准输入的格式化读入&nbsp;<BR>sprintf()/swprintf()&nbsp;根据vararg参量表格式化成字符串&nbsp;<BR>sscanf()&nbsp;以字符串作格式化读入&nbsp;<BR>vfprintf()/vfwprintf()&nbsp;使用stdarg参量表格式化输出到文件&nbsp;<BR>vprintf()&nbsp;使用stdarg参量表格式化输出到标准输出&nbsp;<BR>vsprintf()/vswprintf()&nbsp;格式化stdarg参量表并写到字符串&nbsp;<BR>&nbsp;<BR>数字转换:&nbsp;<BR>&nbsp;<BR>宽字符函数&nbsp;普通C函数&nbsp;描述&nbsp;<BR>wcstod()&nbsp;strtod()&nbsp;把宽字符的初始部分转换为双精度浮点数&nbsp;<BR>wcstol()&nbsp;strtol()&nbsp;把宽字符的初始部分转换为长整数&nbsp;<BR>wcstoul()&nbsp;strtoul()&nbsp;把宽字符的初始部分转换为无符号长整数&nbsp;<BR>&nbsp;<BR>多字节字符和宽字符转换及操作:&nbsp;<BR>&nbsp;<BR>宽字符函数&nbsp;描述&nbsp;<BR>mblen()&nbsp;根据locale的设置确定字符的字节数&nbsp;<BR>mbstowcs()&nbsp;把多字节字符串转换为宽字符串&nbsp;<BR>mbtowc()/btowc()&nbsp;把多字节字符转换为宽字符&nbsp;<BR>wcstombs()&nbsp;把宽字符串转换为多字节字符串&nbsp;<BR>wctomb()/wctob()&nbsp;把宽字符转换为多字节字符&nbsp;<BR>输入和输出:&nbsp;<BR>&nbsp;<BR>宽字符函数&nbsp;普通C函数&nbsp;描述&nbsp;<BR>fgetwc()&nbsp;fgetc()&nbsp;从流中读入一个字符并转换为宽字符&nbsp;<BR>fgetws()&nbsp;fgets()&nbsp;从流中读入一个字符串并转换为宽字符串&nbsp;<BR>fputwc()&nbsp;fputc()&nbsp;把宽字符转换为多字节字符并且输出到标&nbsp;<BR>准输出&nbsp;<BR>fputws()&nbsp;fputs()&nbsp;把宽字符串转换为多字节字符并且输出到&nbsp;<BR>标准输出串&nbsp;<BR>getwc()&nbsp;getc()&nbsp;从标准输入中读取字符,&nbsp;并且转换为宽字&nbsp;<BR>符&nbsp;<BR>getwchar()&nbsp;getchar()&nbsp;从标准输入中读取字符,&nbsp;并且转换为宽字&nbsp;<BR>符&nbsp;<BR>None&nbsp;gets()&nbsp;使用fgetws()&nbsp;<BR>putwc()&nbsp;putc()&nbsp;把宽字符转换成多字节字符并且写到标准&nbsp;<BR>输出&nbsp;<BR>putwchar()&nbsp;getchar()&nbsp;把宽字符转换成多字节字符并且写到标准&nbsp;<BR>输出&nbsp;<BR>None&nbsp;puts()&nbsp;使用fputws()&nbsp;<BR>ungetwc()&nbsp;ungetc()&nbsp;把一个宽字符放回到输入流中&nbsp;<BR>&nbsp;<BR>字符串操作:&nbsp;<BR>&nbsp;<BR>宽字符函数&nbsp;普通C函数&nbsp;描述&nbsp;<BR>wcscat()&nbsp;strcat()&nbsp;把一个字符串接到另一个字符串的尾部&nbsp;<BR>wcsncat()&nbsp;strncat()&nbsp;类似于wcscat(),&nbsp;而且指定粘接字符串的&nbsp;<BR>粘接长度.&nbsp;<BR>wcschr()&nbsp;strchr()&nbsp;查找子字符串的第一个位置&nbsp;<BR>wcsrchr()&nbsp;strrchr()&nbsp;从尾部开始查找子字符串出现的第一个位&nbsp;<BR>置&nbsp;<BR>wcspbrk()&nbsp;strpbrk()&nbsp;从一字符字符串中查找另一字符串中任何&nbsp;<BR>一个字符第一次出现的位置&nbsp;<BR>wcswcs()/wcsstr()&nbsp;strchr()&nbsp;在一字符串中查找另一字符串第一次出现&nbsp;<BR>的位置&nbsp;<BR>wcscspn()&nbsp;strcspn()&nbsp;返回不包含第二个字符串的的初始数目&nbsp;<BR>wcsspn()&nbsp;strspn()&nbsp;返回包含第二个字符串的初始数目&nbsp;<BR>wcscpy()&nbsp;strcpy()&nbsp;拷贝字符串&nbsp;<BR>wcsncpy()&nbsp;strncpy()&nbsp;类似于wcscpy(),&nbsp;同时指定拷贝的数目&nbsp;<BR>wcscmp()&nbsp;strcmp()&nbsp;比较两个宽字符串&nbsp;<BR>wcsncmp()&nbsp;strncmp()&nbsp;类似于wcscmp(),&nbsp;还要指定比较字符字符&nbsp;<BR>串的数目&nbsp;<BR>wcslen()&nbsp;strlen()&nbsp;获得宽字符串的数目&nbsp;<BR>&nbsp;<BR>wcstok()&nbsp;strtok()&nbsp;根据标示符把宽字符串分解成一系列字符&nbsp;<BR>串&nbsp;<BR>wcswidth()&nbsp;None&nbsp;获得宽字符串的宽度&nbsp;<BR>wcwidth()&nbsp;None&nbsp;获得宽字符的宽度&nbsp;<BR>&nbsp;<BR>另外还有对应于memory操作的&nbsp;wmemcpy(),&nbsp;wmemchr(),&nbsp;wmemcmp(),&nbsp;wmemmove(),&nbsp;<BR>wmemset().&nbsp;<BR>2.&nbsp;X&nbsp;窗口系统下支持中文的函数&nbsp;<BR>&nbsp;<BR>支持西文的函数&nbsp;支持中文的函数&nbsp;描述&nbsp;<BR>XLoadFont&nbsp;XCreateFontSet&nbsp;载入字体集&nbsp;<BR>&nbsp;<BR>XTextExtents(16)&nbsp;Xmb/wcTextExtents&nbsp;返回文本的限制框&nbsp;<BR>Xmb/wcTextPerCharExtents&nbsp;<BR>XDrawString&nbsp;Xmb/wcDrawString&nbsp;在窗口中画字符串,&nbsp;背景填充&nbsp;<BR>XDrawImageString&nbsp;Xmb/wcDrawImageString&nbsp;在窗口中画字符串&nbsp;<BR>XDrawText&nbsp;Xmb/wcDrawText&nbsp;在窗口中画字符串&nbsp;<BR>XLookupString&nbsp;Xmb/wcLookupString&nbsp;查找字符串&nbsp;<BR>&nbsp;<BR>3.&nbsp;支持国际化的高层库&nbsp;<BR>o&nbsp;OSF/Motif&nbsp;<BR>o&nbsp;Qt/kdelib&nbsp;<BR>o&nbsp;gtk+/gnome-lib&nbsp;<BR>o&nbsp;Perl&nbsp;<BR>o&nbsp;Java&nbsp;<BR>4.&nbsp;支持多语言的典型软件&nbsp;<BR>o&nbsp;浏览器&nbsp;Netscape&nbsp;<BR>o&nbsp;编辑器&nbsp;XEmacs&nbsp;<BR>o&nbsp;编辑器&nbsp;Mule&nbsp;<BR>o&nbsp;编辑器&nbsp;vim&nbsp;<BR>o&nbsp;终端&nbsp;rxvt&nbsp;<BR>o&nbsp;排版软件&nbsp;LaTeX/lyx&nbsp;<BR>o&nbsp;PostScript/PDF:&nbsp;gs/acroread&nbsp;<BR>o&nbsp;图像处理:&nbsp;gimp&nbsp;<BR>o&nbsp;幻灯片制作&nbsp;mgp&nbsp;<BR>o&nbsp;即将完成:&nbsp;StarOffice,&nbsp;KOffice&nbsp;<BR>5.&nbsp;支持Unicode的软件&nbsp;<BR>o&nbsp;高级图形库函数&nbsp;Qt&nbsp;2.x&nbsp;<BR>o&nbsp;Java&nbsp;语言开发工具&nbsp;JDK&nbsp;<BR>o&nbsp;编辑器&nbsp;yudit&nbsp;<BR>o&nbsp;专用的支持Unicode的&nbsp;X&nbsp;终端&nbsp;<BR>o&nbsp;基于GTK+的文本处理器&nbsp;GScript&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>Linux&nbsp;is&nbsp;my&nbsp;life.&nbsp;<BR>=&gt;欢迎访问主页&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;smth.org·[FROM:&nbsp;166.111.214.121]&nbsp;<BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -