11

我正在尝试从我的 python 应用程序将大约 1000 行写入 .xlsx 文件。数据基本上是整数和字符串的组合。运行 wbook.close() 命令时出现间歇性错误。错误如下:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 15: 
                     ordinal not in range(128)

我的数据在 unicode 中没有任何内容。我想知道为什么解码器会存在。有没有人注意到这个问题?

4

2 回答 2

17

0xc3 是“À”。所以你需要做的是改变编码。使用 decode() 方法。

string.decode('utf-8')

还可以根据您的需要和用途添加

# -*- coding: utf-8 -*-

在脚本的开头,但前提是您确定编码不会干扰和破坏其他内容。

于 2014-01-16T00:29:25.000 回答
4

正如 Alex Hristov 指出的那样,您的代码中有一些非 ascii 数据需要编码为 Excel 的 UTF-8。

请参阅文档中的以下示例,每个示例都有在不同情况下使用 XlsxWriter 处理 UTF-8 的说明:

于 2014-01-16T04:51:21.670 回答