当前位置: 首页 > 面试题库 >

Unicode错误序数不在范围内

高嘉树
2023-03-14
问题内容

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)

问题答案:

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

在这种情况下,发生的情况是python会帮助您首先尝试为您 进行编码
,以便您可以从进行解码utf-32。它使用默认编码进行编码,恰好是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)

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

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



 类似资料:
  • 问题内容: 尝试此计算时出现溢出错误,但我不知道原因。 问题答案: 您要求math.exp计算的数字以十进制表示,超过110,000个数字。这稍微超出了double的范围,因此会导致溢出。

  • 我在颤振中使用了一个很长的列表。所有项目都呈现良好,但我也收到以下错误: 以下是我的代码: 下面是我的方法: 下面是我的方法: 以下是错误的屏幕截图:

  • 我正在尝试合并两个列表,但出现错误。有人有想法吗? 下面是我的合并函数。 这是我的排序函数,它在行my_Merge_Port(container,first_index,mid_index)中生成错误 如果first_index,我也会收到这个错误 当我调用这个函数时,我使用mymgsor(sample_list,0,len(sample_list)-1)

  • 我在使用xlwt写入excel文件时收到以下消息: 行索引(u'RN')不是范围内的整数(65536) 抛出错误的行来自这里: 其中,是一个设置行值的计数器,是另一个设置列值的计数器。 我不知道为什么会收到这个消息,因为值(u'RN')是一个字符串值,但它告诉我它不是范围内的整数(65536)。我相信范围(65536)是excel表格的极限。同样,我只写了18条记录,所以我不明白为什么会出现这个错

  • 我有一个电子表格,由外部应用程序通过Google Sheets API编辑。然后,我在电子表格中有一个谷歌应用程序脚本函数,它由可安装的更改触发器调用。在开始时,此函数检查changeType是否等于“EDIT”,然后使用getActiveRange()检查编辑范围的最后一列。这很好,但有时返回的范围比实际编辑的范围小。功能代码: 例如,我们有一个空范围A3: G5。在这个范围内插入值后,它会正确

  • 描述 (Description) 如上所述,C库宏ERANGE表示范围错误,如果输入参数超出范围,则会发生范围错误,在该范围内定义数学函数并将errno设置为ERANGE。 声明 (Declaration) 以下是ERANGE Macro的声明。 #define ERANGE some_value 参数 (Parameters) NA 返回值 (Return Value) NA 例子 (Exam