Dnes som bol v mojom skripte zasiahnutý podivnou chybou:
"utf8" codec can"t decode byte 0xc3 in position 21: invalid continuation byte
Čítam údaje zo zásuvky sock.recv
a výsledok je buff.decode("utf-8")
kde buff sú vrátené dáta.
Ale dnes som našiel skoro "jednorožec", kde jedenznakov vrátených "▒" <- to je to, čo vykresli dekódovanie utf-8 do výnimky. Existuje nejaký predbežný proces, ktorý buď odstráni alebo nahradí takýto zvláštny znak?
odpovede:
5 pre odpoveď č. 1Existuje druhý parameter pre .decode()
pomenovaný errors
, Môžete ho nastaviť "ignore"
ignorovať všetky znaky, ktoré nie sú utf8, alebo ich nastaviť "replace"
nahradiť ich otáznikom diamantu ( ).
buff.decode("utf-8", "ignore")