猿问

Python 无法用big5编码“恒”字,decode()函数碰到F9DA(“恒”的big5码)报错

执行:
"恒".encode("big5")
报错:
UnicodeEncodeError:'big5'codeccan'tencodecharacter'\u6052'inposition0:illegalmultibytesequence
执行:
b"\xf9\xda".decode("big5")
报错:
UnicodeDecodeError:'big5'codeccan'tdecodebyte0xf9inposition0:illegalmultibytesequence
big5码表
梵蒂冈之花
浏览 856回答 2
2回答

波斯汪

最简单的方法,肯定是改成繁体字的“恆”咯;麻烦点的方法,就是先用Unicode码位顶替无法编码的字符,解码后再自行处理,代码如下:>>>foo='恒恆'.encode(encoding='big5',errors='backslashreplace')>>>foob'\\u6052\xab\xed'>>>temp=foo.decode(encoding='big5',errors='backslashreplace')>>>temp'\\u6052恆'>>>bar=repr(temp).replace('\\\\','\\')>>>bar"'\\u6052恆'">>>eval(bar)'恒恆'
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答