微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unicode错误序数不在范围内

如何解决Unicode错误序数不在范围内

你已经有一个unicode字符串,就没有必要将其解码为unicode字符串 再次

在这种情况下,发生的情况是python会帮助您首先尝试为您 进行编码 ,以便您可以从进行解码utf-32@H_502_8@。它使用认编码进行编码,恰好是ASCII。这是一个显式编码,向您显示在这种情况下引发的异常:

>>> u'\u201d'.encode('ASCII')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\u201d' in position 0: ordinal not in range(128)
@H_502_8@

简而言之,当您拥有Unicode文字如时u''@H_502_8@,就无需对其进行解码。

阅读Python Unicode HOWTO中的unicode,编码和认设置。关于该主题的另一篇非常有价值的文章是Joel Spolsky的Minimun Unicode知识文章

解决方法

unicode对我来说很奇怪。我当时处理的是unicode很好,但是今天早上运行它时,u’\ u201d’一项出现错误并给了我

UnicodeError: ASCII encoding error: ordinal not in range(128)

我查找了代码,显然是它的utf-32,但是当我尝试在解释器中对其进行解码时:

c = u'\u201d'
c.decode('utf-32','replace')

或与此相关的任何其他操作,它只是无法在任何编解码器中识别它,但我发现它是“正确的双引号”

我得到:

Traceback (most recent call last):
File "<pyshell#154>",line 1,in <module>
    c.decode('utf-32')
  File "C:\Python27\lib\encodings\utf_32.py",line 11,in decode
    return codecs.utf_32_decode(input,errors,True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u201d' in position 0: ordinal not in range(128)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。