猿问

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

执行:

"恒".encode("big5")

报错:

UnicodeEncodeError: 'big5' codec can't encode character '\u6052' in position 0: illegal multibyte sequence

执行:

b"\xf9\xda".decode("big5")

报错:

UnicodeDecodeError: 'big5' codec can't decode byte 0xf9 in position 0: illegal multibyte sequence

big5码表

泛舟湖上清波郎朗
浏览 812回答 2
2回答

慕莱坞森

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

相关分类

Python
我要回答