盗窃罪的社会危害性:Debian下安装中文包和输入法【解决无法显示中文问题】

来源:百度文库 编辑:中财网 时间:2024/04/30 06:34:21

from http://zhcon.sourceforge.net/develop_cn.html

Debian下安装中文包和输入法【解决无法显示中文问题】

分类: Linux 2011-05-11 12:11 532人阅读 评论(0) 收藏 举报

      以前一直用的都是ubuntu,输入法之类的点点鼠标就OK了。最近需要使用debian了,安装了一个桌面版(vim写代码感觉有点恶心),安装的时候全部选择英文,运行起来发现竟然无法显示中文,输入法也没找到在哪里设置(我是在虚拟机下安装的,可能会有点小区别)。

 

共享一个有效的方式:

首先是配置编码:

  1. #aptitude install locales   
  2. #dpkg-reconfigure locales   
  3. 进入选择:  
  4. zh_CN GB2312  
  5. zh_CN.GBK GBK  
  6. zh_CN.UTF-8 UTF-8  
  7. en_US.UF8  
  8. #vim /etc/default/locale   
  9. 设置:LANG=en_US.UTF-8  
 

然后安装语言包之类的:

  1. #apt-get install ttf-arphic-uming    
  2. #apt-get install xfonts-intl-chinese    
  3. #apt-get install xfonts-wqy  
 

到这里应该就可以显示中文了,没停下来查看,马不停蹄的安装输入法了

最后安装scim输入法相关:

  1. #apt-get install scim    
  2. #apt-get install scim-chinese    
  3. #apt-get install scim-pinyin  
 

然后我是重启了下,所有的OK,输入法通过ctrl+space切换。

基本工作原理
通常Linux的控制台工作在文本模式下,要想在屏幕上正确显示,汉字必须将屏幕切换到图形模式,这可以通过调用内核FrameBuffer驱动程序来实现。此外,还要能正确识别系统输出到控制台的汉字信息,并调用汉字显示模块将其输出到屏幕。

一种方法是像DOS下的汉字系统所做的那样:利用系统时钟中断定时监视显存地址B800:0000处的显示缓冲区 ,动态识别缓冲区中的字符信息。这种方法要求修改内核中断和TTY驱动程序,实现起来比较困难,而且需要直接操纵硬件视频缓冲区,大大影响了系统的可移植性和稳定性。

另一种方法就是UNIX下多数中文平台采用的基于伪终端(Pseudo-Terminals)的外挂式解决方案。伪终端(Pseudo-Terminal)是一种类似于终端的特殊的进程间通信通道(channel)。通道的一端被称为主设备(master pseudo-terminal device),另一端被称为从设备。写入主设备的数据被发送到从设备,而写入从设备的数据也可从主设备读出,对用户来说就好像自己实际上连接到了真正的计算机终端之上。简而言之,伪终端是位于虚拟终端和最终的终端设备之间的一种承担着输入输出转换功能的设备。

伪终端诞生之初就得到了广泛应用,典型的例子是Telnet服务程序。Telnet是一种远程登录服务,用户使用Telnet客户端程序通过网络登录到远程主机之上进行各种操作。Telnet服务程序就是一个伪终端,一端连接到Telnet客户端程序,另一端连接到主机应用程序,客户和应用程序之间通过伪终端进行对话。

当应用程序需要从输入设备(键盘)读入数据时,它向控制台设备(/dev/console)发出 系统调用read() ,接着内核 console 驱动响应该系统请求,从输入设备驱动程序(通常为键盘驱动keyboard.c)获得输入数据,并将之返回给应用程序。而当应用程序需要想控制台输出数据时,它通过write()系统调用将数据发送至console设备,再由内核 console 驱动转发到真正的输出设备(终端、打印机...)上去。

通过以上分析可以发现如果在应用程序从控制台设备(/dev/console)读入数据之前截获键盘输入信息,并提交输入法模块处理,再将处理后得到的中英文信息发送至应用程序即可完成中文输入。而在应用程序将输出数据写入/dev/console设备之前截获输出并交由汉字识别模块处理,最终由汉字显示模块输出至屏幕,即可实现中英文输出。这就是zhcon之类的中文控制台的基本工作原理。