为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

泛舟湖上清波郎朗 2019-02-17 10:56:36
执行: "恒".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码表
查看完整描述

2 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

最简单的方法,肯定是改成繁体字的“恆”咯;
麻烦点的方法,就是先用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)
'恒恆'
查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 828 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信