我使用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
为什么我无法解码这个字符串?
答案 0 :(得分:5)
来自Wikipedia:
2003年11月,UTF-8受到RFC 3629的限制,以U + 10FFFF结束,以匹配UTF-16字符编码的限制。
您尝试解码的角色超出此范围。特别是它是U + 150410。