【发布时间】:2010-04-09 21:58:06
【问题描述】:
我有一个 Python 程序,用于存储数据并将数据写入文件。数据是原始二进制数据,内部存储为str。我正在通过 utf-8 编解码器写出来。但是,我在cp1252.py 文件中得到了UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 25: character maps to <undefined>。
在我看来,这就像 Python 正在尝试使用默认代码页解释数据。但它没有默认代码页。这就是为什么我使用str,而不是unicode。
我想我的问题是:
- 如何在 Python 中表示内存中的原始二进制数据?
- 当我通过编解码器写入原始二进制数据时,如何对其进行编码/取消编码?
【问题讨论】:
-
你说你在str中有原始数据,你是如何生成这些数据的?我假设你在某个地方有一个 unicode 源,但我不清楚你是在 str 中写入“原始”unicode,还是从文件中读取它(类似对象)或...... (发布一个演示此错误的示例字符串会很有帮助!)