Ubuntu shell无法输入中文问题(以及Python3出现 UnicodeEncodeError: ‘utf-8‘ codec can‘t encode characters )

如果同时出现如下2种情况,那么可能该博客对你有帮助:

  • Ubuntu shell无法输入中文问题
  • Python3出现 UnicodeEncodeError: 'utf-8' codec can't encode characters in position xxx: surrogates not allowed

环境:
Ubuntu16.04
Python3.6.3
问题描述:无法在shell中输入中文,同时在Python3中可以print(),但是处理该文件(如读数据)会报错

前提:
服务器安装了中文字库,一般在如下位置:
$ ls /usr/share/fonts/truetype/cn_font
SIMHEI.TTF  SIMKAI.TTF  SIMLI.TTF  SIMSUN.TTC  SIMYOU.TTF  STHUPO.TTF  STXINGKA.TTF  STXINWEI.TTF
如果没有随便从Windows里面复制几个字体进去

1、检查服务器环境
root@75f681e080e4:/# locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
 
如果显示是上面的,则语言配置不对,于是修改:
vim /etc/environment
添加如下:
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

2、安装中文环境支持:
cd /usr/share/locales/
ls
./install-language-pack zh_CN

3、对于非root用户,可能上面方法没有效果,解决方案:
在该用户的home路径中,修改或新建bash_profile文件,并写入:
pre@pre-store221:~$ cat ~/.bash_profile
export LANG=zh_CN.UTF-8
新开一个session即可(注意可能会导致python默认版本变化,原因不明,我重新做了一个软链接解决)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值