2013-05-11 43 views
0

我想解碼chatacters已被編碼在以下方式:
&#號碼;
我想:蟒蛇 - 可能的編碼和解碼值

s.decode("utf8") 

和:

s.decode("unicode-escape") 

但都沒有似乎工作。

什麼是我應該用來解碼這種類型的編碼?

一般 - 我可以在哪裏找到所有有效編碼的列表?

+0

參見[XML轉換HTML實體到Python中的Unicode字符串(http://stackoverflow.com/questions/57708/convert-xml-html-entities-into -unicode-string-in-python) – Kos 2013-05-11 10:10:00

回答

5

的Python :

import HTMLParser 
h = HTMLParser.HTMLParser() 
print h.unescape('£682m') 
£682m 

的Python :

import html.parser 
h = html.parser.HTMLParser() 
print(h.unescape('£682m')) 
£682m 

.encode和.decode在一點點不同的方式工作,那麼你希望我害怕。 參見以下:

print 'å'.decode('iso-8859-1') 
u'\x86' 

該字符串是在Latin-1的編碼的,當我輸入它到控制檯(å),但我的終點使用ISO-8859-1,所以我可以重新編碼,以適合我的終端的字符編碼。

對於字符編碼的詳細信息:http://en.wikipedia.org/wiki/Character_encoding

+0

謝謝你的回答 - 但我問的是翻譯回格式的東西:&#(some_number);你提供的東西不適用於那個 – tomermes 2013-05-11 10:03:12

+0

'&#號;' - >'symbol',顯然通過'h.escape()'來做'symbol' - >'&#你的問題是你**有一個&#號並想「解碼」它,這就是我的解決方案..如果你想要另一個答案,請問你的問題是否正確,但正如我所提到的,你可以反過來做這件事,得到相反的結果。 – Torxed 2013-05-11 11:21:37

+0

對不起!你是對的。你的代碼可以工作。在嘗試將其寫入文件時還有其他問題,但這是另一個故事。 – tomermes 2013-05-11 13:23:50