我用python 寫'\xF5\x90\x90\x90'.decode('utf8')
但是報(bào)錯(cuò)了:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xf5 in position 0: invalid start byte
問(wèn)題是:\xF5\x90\x90\x90 是個(gè)標(biāo)準(zhǔn)的四字節(jié)的utf8編碼的字符啊
轉(zhuǎn)換成二進(jìn)制就是 11110101 10010000 10010000 10010000
完全符合utf8編碼規(guī)則:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
我把\xF5換成\xF2就沒(méi)有問(wèn)題了,也就是11110010開(kāi)頭,難道是因?yàn)閁nicode實(shí)際上沒(méi)有用到這么多的字符,所以不能decode('utf8')?但是規(guī)則是對(duì)的呀,萬(wàn)一哪天Unicode又?jǐn)U充了很多字符集,那python的decode()函數(shù)豈不是要更新了?
utf8編碼規(guī)則會(huì)受制于Unicode實(shí)際的字符對(duì)應(yīng)嗎?
慕工程0101907
2019-02-22 16:47:33