Django 后台添加含有中文时出现'ascii' codec can't encode characters in position 4-11: ordinal not in range(128)
来源:互联网 发布:淘宝网客服电话是多少 编辑:程序博客网 时间:2024/06/08 00:32
之前添加的文章都是随手打的英文字母,想试试添加效果,后来想真正添加文章的时候发现添加中文上传时会报错:
'ascii' codec can't encode characters in position 4-11: ordinal not in range(128)
我用getdefaultencoding()函数查询Python的编码为'ascii'编码
查了资料发现Python默认的编码方式为'ascii'编码而不是'utf-8'编码
将PyCharm的编码格式改为'utf-8'也没有用
后来找到了解决方法:在manage.py文件的开头加上如下代码:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
关于为什么要reload(sys)?
因为这里的import语句可能不是sys的第一次导入语句,可能是第2、3次进行sys模块的import,这里是一个对sys的引用,只能reload才能进行重新加载。
为什么要重新加载,而直接引用过来则不能调用该函数?
因为setdefaultencoding()函数在被系统调用后被删除了(所以如果不重新加载,在Pycharm中显示setdefaultencoding()函数不存在),所以通过import引用进来时其实已经没有了,所以必须reload一次sys模块,这样setdefaultencoding()才会为可用,才能在代码里修改解释器当前的字符编码。
0 0
- Django 后台添加含有中文时出现'ascii' codec can't encode characters in position 4-11: ordinal not in range(128)
- Django admin出现'ascii' codec can't encode characters in position 0-9: ordinal not in range(128)
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 3-4: ordinal not in range(128)
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
- 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)
- python3 运行出现'ascii' codec can't encode characters in position 10-11: ordinal not in range(128)错误解决方案
- 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-15: ordinal not in range(128
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
- 'ascii' codec can't encode characters in position 34-41: ordinal not in range(128)处理
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-78: ordinal not in range(128
- UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
- 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)问题
- 重装MySQL失败的终极解决办法!
- 关于Android Studio初学时遇到的小问题—ImageView
- 运算符、表达式、语句 (预习)
- Spring对JMS的支持
- 面试编程题1
- Django 后台添加含有中文时出现'ascii' codec can't encode characters in position 4-11: ordinal not in range(128)
- You need to use a Theme.AppCompat theme (or descendant) with this activity.
- 复数的运算(类和对象)(写的不正规 单纯应付机考)
- mysql的高并发测试验证
- 机器学习从入门到出家
- Uva.213 Message Decoding
- jquery+css实现自定义对话框功能(不使用插件)
- [hdu2896] 病毒侵袭 AC自动机
- 数据库编程