linux 安装中文字符集,解决报错问题UnicodeEncodeError

问题描述

linux 无法输入和显示中文
运行python3打印中文时,报错UnicodeEncodeError,如下

UnicodeEncodeError: 'ascii' codec can't encode characters in position 48-49: ordinal not in range(128)

问题定位

1.在linux终端,打印中文
echo 中文
2.在python解释器,打印中文
print(‘中文’)

解决方法:

1、方法一
安装中文字符集
sudo apt-get -y install language-pack-zh-hans
编辑字符集文件
vim /etc/default/locale
LANG=“zh_CN.UTF-8”
LANGUAGE=“zh_CN:zh:en_US:en”
编辑后立即生效
source /etc/default/locale

2、方法二
vim /etc/locale.conf
LANG=“zh_CN.UTF-8”
LC_ALL=“zh_CN.UTF-8”
LC_CTYPE=“zh_CN.UTF-8”

在python解释器里临时解决

import sys
import io

def setup_io():
    sys.stdout = sys.__stdout__ = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8', line_buffering=True)
    sys.stderr = sys.__stderr__ = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8', line_buffering=True)

setup_io()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值