【发布时间】:2016-10-16 22:57:39
【问题描述】:
我正在测试基于 REST 的服务,其中一个输入是文本字符串。所以我从我的 python 代码中发送随机的 unicode 字符串。到目前为止,我发送的 unicode 字符串都在 ascii 范围内,所以一切正常。
现在我尝试发送超出 ascii 范围的字符,但出现编码错误。这是我的代码。我已经经历了这个link,但仍然无法理解它。
# coding=utf-8
import os, random, string
import json
junk_len = 512
junk = (("%%0%dX" % junk_len) % random.getrandbits(junk_len * 8))
for i in xrange(1,5):
if(len(junk) % 8 == 0):
print u'decoding to hex'
message = junk.decode("hex")
print 'Hex chars %s' %message
print u' '.join(message.encode("utf-8").strip())
第一行打印没有任何问题,但我无法将其发送到 REST 服务而不对其进行编码。因此,我尝试将其编码为 utf-8 的第二行。这是失败并显示以下消息的代码行。
UnicodeDecodeError: 'ascii' 编解码器无法解码位置 0x81 字节 7:序数不在范围内(128)
【问题讨论】:
标签: python-2.7 encoding utf-8 python-unicode