今天把一个flask的web站点上传到腾讯云debian9 64位服务器上,本地测试一切正常,传上去之后各种print中文全部报错
找出问题
看着就像是编码不对,我记得在阿里云都没这个问题,然后想起一个细节,在nginx等各种配置文件中,中文都是乱码,那估计是腾讯云的debian系统编码不对。
使用locale命令查看编码,
locale
果然腾讯云的都是C,这应该是ASCII的意思。
这是阿里云的:
阿里云的LANG是en_US.UTF-8编码。
知道原因了,那怎么换呢。
开始动手解决
查看系统的en_US.utf8包的名字
locale -a
这个系统中是en_US.utf8
修改系统默认编码
sudo vi /etc/default/locale
改成
LANG=en_US.utf8
输入
locale
发现还有2个地方没变,试了试,果然还是会出错
再执行命令
vi /etc/profile
写入
export LC_CTYPE=en_US.utf8
现在就都是en_US.utf8编码了
退出服务器,重新登陆全部生效了
现在python可以print中文了:
vi也能粘贴中文了: