找回密码
 注册
首页 ≡≡网络技术≡≡ 服务器 解决Ubuntu server 终端中文乱码显示问题

安全 解决Ubuntu server 终端中文乱码显示问题

灰儿 2016-5-27 16:33:45
问题:
在安装 Ubuntu Server 14.04版的时候选择的中文安装,结果安装好之后在本机登录到命令行状态,发现好多命令显示的结果都是乱码,如下图所示:

01.jpg

解决思路:
只有在在本机登录控制台界面(ctrl+alt+f1)才会中文显示乱码,如果通过ssh远程登录和图形界面下使用模拟终端都是可以正常显示中文的,由于维护服务器使用ssh登录比较多,本地使用控制台的机会非常少,这个问题可以忽略不计,如果一定要解决本地登录乱码问题,推荐安装使用fbterm组件来解决,安装与使用非常简单。

灰儿 楼主 2016-5-27 16:57:17
以下的解决方法是从网上转来的,仅供大家参考,本人经测试没有效果,并不能解决问题。

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


解决方法:
一. Ubuntu默认的中文字符编码
Ubuntu默认的中文字符编码为zh_CN.UTF-8,这个可以在
/etc/environment中看到:
sudo gedit /etc/environment
可以看到如下内容:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"
第二行即是默认的中文字符编码。注:可以通过这里修改默认的中文编码字符,比如修改为:zh_CN.GBK。

二. 添加中文字符编码的方法
1. 直接使用locale-gen
在终端输入命令:
sudo locale-gen zh_CN.GB18030
即可完成中文字符集的添加。完成后可以转到
/usr/lib/locale/,下面已经有一个zh_CN.gb18030文件夹;在超级终端输入命令:
gedit /var/lib/locales/supported.d/local,可以发现文件中多了一行:zh_CN.GB18030 GB18030。说明添加成功。


2. 通过修改/var/lib/locales/supported.d/local文件
在终端输入命令行
sudo gedit /var/lib/locales/supported.d/local
可以看到如下内容:
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8

在文件尾添加中文字符集
zh_CN.GBK GBK
保存后退出。在终端输入命令:
sudo dpkg-reconfigure locales
Generating locales...
en_AU.UTF-8... done
en_BW.UTF-8... done
en_CA.UTF-8... done
en_DK.UTF-8... done
en_GB.UTF-8... done
en_HK.UTF-8... done
en_IE.UTF-8... done
en_IN.UTF-8... done
en_NZ.UTF-8... done
en_PH.UTF-8... done
en_SG.UTF-8... done
en_US.UTF-8... done
en_ZA.UTF-8... done
en_ZW.UTF-8... done
zh_CN.GBK... done
zh_CN.UTF-8... up-to-date
zh_HK.UTF-8... done
zh_SG.UTF-8... done
zh_TW.UTF-8... done
Generation complete.

即可生成相应文件:/usr/lib/locale/zh_CN.gbk/
最后重启ubuntu。


灰儿 楼主 2016-5-27 17:03:50
在安装 Ubuntu Server的时候选择的中文安装,结果安装好之后发现好多命令显示的结果都是乱码,在网上查了一下其他人的解决办法,貌似目前还没有特别好的解决方法,以下改为英文环境的方法,适合英语水平好的专业人士:

进入系统后,配置语言环境变量
$sudo vim /etc/environment
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"

修改为

LANG="en_GB.UTF-8"
LANGUAGE="en_US:en"

保存后,执行命令:
sudo locale-gen

Generating locales...
  en_US.UTF-8... done
  zh_CN.UTF-8... up-to-date
  zh_HK.UTF-8... up-to-date
  zh_SG.UTF-8... up-to-date
  zh_TW.UTF-8... up-to-date
Generation complete.

$sudo vim /etc/default/init/locale同样也修改为

LANG="en_GB.UTF-8"
LANGUAGE="en_US:en"


重启电脑 reboot

至此,终端命令行方格乱码解决,注意此方法只是解决命令行乱码,并没有解决打开的文档里面的中文显示方格乱码问题


灰儿 楼主 2016-5-27 17:42:26
Ubuntu 先查看一下 /usr/share/i18n/SUPPORTED 这个文件受支持的 locale 的设定,然后用命令激活即可。
运行激活命令:
locale-gen en_US.UTF-8
locale-gen fr_FR
locale-gen zh_CN.UTF-8
locale-gen zh_CN
locale-gen zh_CN.GBK
locale-gen zh_CN.GB18030

然后设定系统默认的编码语言:
vi /etc/default/locale
输入:
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"
然后在末行输入 :wq 保存并退出到sell,然后执行:
locale-gen --purge
重新生成,带上--purge(用来删除所有旧的配置,在出现问题时很有用),不然在编译时可以会报错,然后重启系统即可。
灰儿 楼主 2016-5-28 14:11:46

系统环境:Ubuntu server 14.04 (64bit)

在网上搜了大量就教程,多数是修改中文编码之类,经测试都没有效果,只有使用fbterm等组件的方法才是真正可行的办法。


第一步:安装相关软件:

apt-get install fbterm

第二步:进行相关配置:


把用户加入到可以使用framebuffer输出的组,这个组叫video

代码:
$ sudo adduser [用户名] video


如果不起作用,先把当前用户加入video组:

sudo usermod -G video [用户名]或
sudo usermod -aG video [用户名]


重启电脑,至此,可以在tty下通过执行 sudo fbterm命令来实现中文的显示。

您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。