为什么我不能解码python2.7中的'utf8'字符串?

时间:2015-05-05 04:14:32

标签: python python-2.7 utf-8 standards decode

我使用python写:

'\xF5\x90\x90\x90'.decode('utf8')

但这会导致错误:

UnicodeDecodeError: 'utf8' codec can't decode byte 0xf5 in position 0: invalid start byte

字符串\xF5\x90\x90\x90是标准的'utf8'字符串。 它的二进制是11110101 10010000 10010000 10010000。 遵守utf8的规则:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

为什么我无法解码这个字符串?

1 个答案:

答案 0 :(得分:5)

来自Wikipedia

  

2003年11月,UTF-8受到RFC 3629的限制,以U + 10FFFF结束,以匹配UTF-16字符编码的限制。

您尝试解码的角色超出此范围。特别是它是U + 150410。