python-3.x - 写入 ConfigObj 时出现 Ascii 编解码器错误

标签 python-3.x utf-8 ascii codec configobj

我不会读/写俄语文本,例如:

from configobj import ConfigObj
obj = ConfigObj('config.ini')
mydata = ['вася', 'петя']
obj['users'] = mydata
obj.write()

我得到错误:

obj.write()
File "/usr/lib/python3.4/site-packages/configobj-5.0.6-py3.4.egg/configobj.py", line 2119, in write
UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-13: ordinal not in range(128)

在 python 2.7 上一切正常,但是 3.4... 请帮助我。我做错了什么?

最佳答案

在编写配置之前,如果输出不是二进制类型,则会对其进行编码。这就是它适用于 Python 2 的原因。

处理encoding正确,你需要相应地设置它:

obj = ConfigObj('config.ini', encoding='utf8')

关于python-3.x - 写入 ConfigObj 时出现 Ascii 编解码器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32208421/

相关文章:

java - Java 中的 Ascii 表

python - python打印语句中逗号和加号有什么区别?

python - 似乎无法在 Python 3 中获取 POST 请求

在 CRON 作业中运行时 Python 脚本编码出现问题

c - 将特定范围的所有 UTF-8 字符打印为 utf-8 编码文本

.net - 使用 ADO.net(OLEDB) 导入 UTF-8 CSV 文件

c# - C#从串口读取字节流

ascii - Graphviz 和 ascii 输出

python - 如何使一定长度的单词翻转?

macos - 自从在Mac OS X Yosemite上安装python 3以来,ipython Notebook无法启动