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

unicode()。decode('utf-8','ignore')引发UnicodeEncodeError

钮善
2023-03-14
问题内容

这是代码:

>>> z = u'\u2022'.decode('utf-8', 'ignore')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'latin-1' codec can't encode character u'\u2022' in position 0: ordinal not in range(256)

为什么在使用.decode时会引发UnicodeEncodeError?

为什么在使用“忽略”时会出现任何错误?


问题答案:

当我第一次开始瞎搞与Python字符串和unicode,我花了一段时间才明白的行话 解码编码
过,所以这里是从我的岗位在这里,可以帮助:

您的过程很好,您只需要再执行1个步骤即可;也就是说,从unicode编码为utf-8(或任何其他支持“怪异字符”的编码。)

将解码视为从常规字符串转换为unicode所要做的工作,而将编码视为从unicode返回的工作。换一种说法:

你去-代码str产生一个unicode字符串

和恩-代码unicode串产生的str

所以:

params = {'weird-chars': u'\xb0\xe7'}

encodedchars = params['weird-chars'].encode('utf-8')

encodedchars将包含您的字符,以选定的编码显示(在这种情况下为utf-8)。

解码 视为从常规字节串转换 unicode所要做的事情,而将 编码 视为 unicode找回您要做的事情。换一种说法:

-代码str产生一个unicode字符串

-代码unicode串产生的str

所以:

unicode_char = u'\xb0'

encodedchar = unicode_char.encode('utf-8')

encodedchar将包含您的Unicode字符,以选定的编码显示(在这种情况下为utf-8)。



 类似资料:
  • 描述 (Description) 方法decode()使用为编码注册的编解码器对字符串进行解码。 它默认为默认字符串编码。 语法 (Syntax) Str.decode(encoding='UTF-8',errors='strict') 参数 (Parameters) encoding - 这是要使用的编码。 有关所有编码方案的列表,请访问: 标准编码。 errors - 可以设置不同的错误处理

  • 2. Unicode和UTF-8 为了统一全世界各国语言文字和专业领域符号(例如数学符号、乐谱符号)的编码,ISO制定了ISO 10646标准,也称为UCS(Universal Character Set)。UCS编码的长度是31位,可以表示231个字符。如果两个字符编码的高位相同,只有低16位不同,则它们属于一个平面(Plane),所以一个平面由216个字符组成。目前常用的大部分字符都位于第一个

  • 问题内容: 我试图弄清楚我应该对各种类型的数据使用哪种排序规则。我要存储的内容的100%是用户提交的。 我的理解是,我应该使用UTF-8 General CI(不区分大小写),而不是UTF-8 Binary。但是,我找不到UTF-8通用CI和UTF-8 Unicode CI之间的明显区别。 我应该在UTF-8 General或UTF-8 Unicode CI列中存储用户提交的内容吗? UTF-8

  • 本文向大家介绍ascii、unicode、utf-8、gbk 区别相关面试题,主要包含被问及ascii、unicode、utf-8、gbk 区别时的应答技巧和注意事项,需要的朋友参考一下  

  • 世界中的字符有许许多多,有英文,中文,韩文等。我们强烈需要一个大大的映射表把世界上的字符映射成计算机可以阅读的二进制数字(字节)。 这样,每个字符都给予一个独一无二的编码,就不会出现写文字的人和阅读文字的人编码不同而出现无法读取的乱码现象了。 于是Unicode就出现了,它是一种所有符号的编码映射。最开始的时候,unicode认为使用两个字节,也就是16位就能包含所有的字符了。 但是非常可惜,两个

  • 问题内容: 我在理解将文本写入文件和将文件写入文件时遇到了大脑故障(Python 2.4)。 因此,我在文件f2 中输入我最喜欢的编辑器。 然后: 我在这里不明白什么?显然,我缺少一些至关重要的魔术(或理性)。一种类型的文本文件可以正确转换? 在这里,我真正无法理解的是UTF-8表示法的意义所在,如果你实际上无法让Python识别它的话(如果它来自外部)。也许我应该只将JSON转储字符串,然后使用