【发布时间】:2011-11-03 07:25:23
【问题描述】:
我正在尝试将数据写入包含日文字符的 Excel 文件。 我正在使用 codec.open() 来获取数据,这似乎工作正常,但是当我尝试写入数据时遇到了这个错误:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 16-17: ordinal not in range(128)
我不明白为什么程序会坚持在这里使用 ascii。当我创建一个新的工作簿对象时,我使用了
wb = xlwt.Workbook(encoding='utf-8')
并且程序文件本身和它正在读取的文件都保存为 UTF-8。
有人有什么想法吗?
编辑:这是 xlwt 包的链接。 http://pypi.python.org/pypi/xlwt
【问题讨论】:
-
你永远不应该写出 UTF-8 字符。
-
那它们有什么好处呢?
-
它们大多没用。你应该改用
unicodes。 -
xlwt 不是标准库的一部分。最好提供一个链接
-
@Ignacio,我认为你倒退了。 Unicode 是一个没有指定物理表示的概念;当你把它写出来的时候,你必须把它编码成某种东西。 UTF-8 是一个非常好的选择。
标签: python utf-8 multibyte xlwt