最近做一些软件测试和打包,需要频繁的装系统,索性用docker启Centos容器来做,基础镜像做好直接启就好,过程中遇到一个和字符集有关的问题,记录一下,方便遇到同样问题的小伙伴。
问题描述
运行某些python脚本时,出现了UnicodeDecodeError
报错:
此时检查字符集:
只有三个,而且默认使用的是POSIX,这个时候通过yum安装也无效,许多帖子让reinstall glibc-common
就能解决问题了,但是目前我尝试使用的centos7.9.2009镜像是无法解决的,需要进一步操作
解决方式
这里先检查/etc/yum.conf
文件,查看是否有这一行:
如果有,把这行备注了或者执行:
yum-config-manager --setopt override_install_langs= --save
yum upgrade
随后再执行yum reinstall glibc-common
,此时再查看字符集:
这下ok了,然后再加到环境变量里:
echo 'export LANG=en_US.utf8' >> /root/.bashrc
echo 'export LC_ALL=en_US.utf8' >> /root/.bashrc
随后手动source就能生效了:
不加到
/etc/profile
中是因为我打镜像的时候Dockerfile
没有专门指定加载/etc/profile
,如果有指定,那就加到profile里