u'囧'.encode('gb2312')抛出UnicodeEncodeError

时间:2016-10-18 05:58:06

标签: python unicode encode gb2312

Firefox可以在gb2312编码的HTML中显示'囧'。但是u'囧'.encode('gb2312')会引发UnicodeEncodeError

1.是否有地图,因此firefox可以在该地图中查找gb2312编码字符,找到01显示矩阵并显示

2.是否有地图将unicode转换为gb2312,但u'囧'不在该地图中?

2 个答案:

答案 0 :(得分:3)

囧不在gb2312中,改用gb18030。我猜火狐可能会在面对未知字符时扩展编码方法。

答案 1 :(得分:3)

当人们或软件说某些东西是GB2312编码时,它们通常意味着它是用GBK编码编码的,即a.k.a.CP936来自微软。 GB2312是20世纪80年代使用的GBK的子集,但它们都是same family of encodings的一部分。

顺便说一下,即将推出的WhatWG encoding specification建议将任何标记为" gb2312"作为GBK编码的文本。

因此,请尝试u'囧'.encode('gbk')u'囧'.encode('cp936')u'囧'.encode('windows-936')