Django项目出现了这个报错,UnicodeEncodeError 。 出现这种错误从两个方面进行排查: 1.先检查Django项目虚拟环境中的python是否支持中文。 为了验证,我进入项目的虚拟环境,运行测试代码,发现此时你执行str="中文"都会报错,如下: 解决方案是: 更改Linux系统的语言编码: 以上只是使用xshell连接虚拟机进行测试的截图。执行: export LC_ALL=“en_US.utf8” 然后执行locale命令,查看语言编码格式,会发现LC_ALL已经改变。此时你在虚拟环境中执行str=“您好"是可以的。但是,注意,这种执行只是在当前xshell连接的tty中起作用,并没有永久更改系统的LC_ALL变量值。你需要如下操作: vim /etc/profile,在里面添加: export LC_ALL=“en_US.utf8”,不要添加export LANG=“en_US.utf8”, 然后执行: source /etc/profile 此时,你打开任何一个xshell连接,执行locale命令,都会显示如下: 注意,里面的LANG变量是空的。如果你把它也设置成"en_US.utf8”,仍然汇报错’ascii’ codec can’t encode……。
2.更改根目录下settings.py 但是后来又出现了同样的问题。我尝试把LC_ALL改为zh_CN.utf8。能够下载了,但是别的功能又出现同样的ascii codec 错误,输入汉字提交的时候报错。 查询资料,解决如下: 根目录下settings.py,LANGUAGE_CODE改为= ‘zh-hans’
|