作者:mobiledu2502900597 | 来源:互联网 | 2023-10-12 16:22
我用python 写
1
| '\xF5\x90\x90\x90'.decode('utf8') |
但是报错了:
1
| UnicodeDecodeError: 'utf8' codec can't decode byte 0xf5 in position 0: invalid start byte |
问题是:
是个标准的四字节的utf8编码的字符啊
转换成二进制就是
1
| 11110101 10010000 10010000 10010000 |
完全符合utf8编码规则:
1
| 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx |
我把\xF5换成\xF2就没有问题了,也就是
开头,难道是因为Unicode实际上没有用到这么多的字符,所以不能decode('utf8')?但是规则是对的呀,万一哪天Unicode又扩充了很多字符集,那python的decode()函数岂不是要更新了?