ubuntu终端乱码

zhcon-Ubuntu字符界面中文乱码和分辨率的解决方案(转 原出处不详)
1.中文乱码
在ubuntu的字符界面中,中文会显示成乱码,即使你在主管图形界面中安装中文语言支持,下面给出了字符界面中显示中文的方法,主要借助于zhcon这个中文控制台工具(不知道这样说对不对),先安装zhcon
sudo apt-get install zhcon
这里用采用源安装的方式。比较简单,如果你习惯从本地安装包安装,那么你可以去官方网站 zhcon.sourceforge.net/index_cn.html 上下载。zhcon安装完毕后,你可以按Ctrl+Alt+F1登录字符界面终端了(tty1),此时你还不能直接运行zhcon命令,那样会造成黑屏,zhcon后面必须加上一些参数:
zhcon --utf8 --drv=vga
这样,你就可以在zhcon中显示中文了。

2.分辨率调整 #转引者说明:一般情况下没必要调整
在你登录字符界面终端时,你可能觉得分辨率太低,你可以在/boot/grub/menu.lst启动项kernel条目后面加上vga=791(注意空格),表示1024X768 16bit显示(关于显示设置的更多信息见Ubuntu中文论坛上有关屏幕和分辨率设置方面的文章)。再次登录进入字符界面终端(需要重启),你会看到字符界面终端的分辨率已经变为1024X768。然而运行zhcon --uft8 --drv=vga,zhcon中的分辨率仍是默认分辨率。使用下面的方法可以调整zhcon中的分辨率,更改/etc/zhcon.conf中的x_resolution, y_resolution,将分辨率设置为你要的分辨率。使用exit命令退出zhcon,在启动zhcon时drv设置为framebuffer,即使用命令zhcon --utf8 --drv=fb,这样进入zhcon后,分辨率将会变为你所设置的值。

3.修改.bashrc
你可能觉得在字符界面终端中每次都要输入zhcon --utf8 --drv=fb这一长串才能正确进入zhcon,的确不容易记住。不过你可以在.bashrc文件中加入这一长串命令的替代方式,用户的.bashrc文件在用户目录下,比如你的当前用户名为username,那么你需要修改/home/username/目录下的.bashrc
vim /home/username/.bashrc
在文件后面添加一行
alias zhcon='zhcon --utf8 --drv=fb'
保存后你需要重新登录一下,以便让.bashrc重新加载,这样你所作的修改才有效,再运行zhcon时就相当于运行了zhcon --utf8 --drv=fb,因而不会黑屏

总结一下,快速解决方案如下:
安装zhcon
sudo apt-get install zhcon
打开.bashrc脚本
vim /home/yourusername/.bashrc #转引者说明:不熟vim,可用nano
添加一项
alias zhcon='zhcon --utf8 --drv=fb' #转引者说明:很重要!
打开zhcon脚本
sudo vim /etc/zhcon.conf
将其中的x_resolution, y_resolution 分辨率改为1024, 768或你想要的。
打开/boot/grub/menu.lst
在与当前系统所使用的启动项的kernel条目中添加vga=791
重启
sudo shutdown -r now

再次进入系统,登录字符界面终端时,你会发现字符界面终端分辨率变为1024X768,运行zhcon命令后,zhcon的分辨率也是1024X768。 关于zhcon方面设置的更多信息请访问官方网站http://zhcon.sourceforge.net/index_cn.html

sudo locale-gen zh_CN.GB18030

使用

在终端输入:zhcon

退出:Ctrl+d

//

http://blog.sina.com.cn/s/blog_e9e82f9d0102ve1c.html

Ubuntu中安装zhcon无法显示汉字(发布者:DS_刘星鹭)  此博文包含图片 (2014-12-13 17:51:09)转载▼
分类: 技术
我阅读了一下源代码,这个确实是bug。
不过不是官方版的zhcon的bug,而是Debian/Ubuntu等发行的集成zhcon_0.2.6-10.debian.tar.gz“补丁包”内的bug。经我查证,是zhcon_0.2.6-10.debian.tar.gz中的8号补丁包(debian/patches/0008-default-to-utf8.patch)造成的。这本来是想把zhcon的默认编码设置成UTF-8,这样就不用每次都打--utf8参数了。但是这名程序员误解了代码,好心办坏事。




bug的具体原因:




路径:
src/cmdline.c




22行:
 Ubuntu中安装zhcon无法显示汉字(发布者:DS_刘星鹭) 






getopt_long函数读取到--utf8参数返回1。结果后面switch中只有case 0,没有case 1,所以去运行default,即
 Ubuntu中安装zhcon无法显示汉字(发布者:DS_刘星鹭) 


其中,CMDLINE_PARSER_PACKAGE是一个宏,在src/cmdline.h中的17-19行有具体定义:
#ifndef CMDLINE_PARSER_PACKAGE
#define CMDLINE_PARSER_PACKAGE "zhcon"
#endif




因此那个printf就输出:
zhcon: option unknown: 




接下来,abort(),自然就是异常结束进程,输出
Aborted (core dumped)


解决方案:下载源代码,不打0008-default-to-utf8.patch补丁,编译安装。


如果不会(比如说我。。。),那还是使用英文系统吧,省得麻烦

//

http://blog.sina.com.cn/s/blog_4d9c3fec0100u98t.html

控制台中有的字符变成了一个菱形的字块,可能是中文没有正确显示,在网上搜了下,以下方案可解决
sudo apt-get install zhcon
zhcon --utf8 --drv=vga
下载了一个中文的软件包zhcon,其实,很多情况下,用英文比较清爽些;
以上是解决了中文显示的问题,在控制台下输入命令locale就知道自己当前的设置,其实,如果只是在终端上进行日常维护,没有必要用中文 
export LANG=en_US 
export LC_ALL=en_US
再做操作就会显示英文了 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值