2016-10-18 1 views
1

Firefox может отображать '囧' в gb2312, закодированный в HTML. Но u'囧'.encode('gb2312') throws UnicodeEncodeError.u '囧' .encode ('gb2312') throws UnicodeEncodeError

1. Есть там карта, поэтому firefox может искать gb2312 закодированные символы на этой карте, найти 01 матрицу отображения и отображение .

2. Есть ли карта для транслирования юникода в gb2312, но u'囧' нет на этой карте?

+0

Вы уверены, что это GB2312? [В этой таблице этого нет] (http://ash.jp/code/cn/gb2312tbl.htm). –

+0

Вы можете найти «囧» в (http://www.dytt8.net/), и эта страница закодирована в gb2312. – user3822769

ответ

3

囧 не в gb2312, вместо этого используйте gb18030. Я думаю, что firefox может расширять метод кодирования, когда она сталкивается с неизвестными персонажами.

2

Когда люди или программное обеспечение говорят, что что-то закодировано в GB2312, они чаще всего означают, что он закодирован в кодировке GBK, a.k.a. CP936 от Microsoft. GB2312 был подмножеством GBK, который использовался в 1980-х годах, но оба являются частью same family of encodings.

Кстати, предстоящий WhatWG's encoding specification рекомендует обрабатывать любой текст, обозначенный как «gb2312», как текст в кодировке GBK.

Поэтому, попробуйте u'囧'.encode('gbk') или u'囧'.encode('cp936') или u'囧'.encode('windows-936').

Смежные вопросы