2017-07-05 3 views
0

Ich benutze MAC OS X 10.12 System. Ich habe eine Tabelle von http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2011/51/06/81/510681114.html heruntergeladen. Die Tabelle wurde mit GB2312 codiert, jedoch habe ich GBK verwendet, um die Tabelle zu speichern. Der Hauptteil des Codes wie die folgende ist:Seltsame Zeichen nach dem Herunterladen der chinesischen Tabelle von HTML

req = urllib2.Request(url, headers={ 'User-Agent': 'Mozilla/5.0' }) 
page = urllib2.urlopen(req).read() 
tables=BeautifulSoup(page,'html.parser', 
parse_only=SoupStrainer(),from_encoding='gbk') 
f = open(path, 'w') 
for row in tables.findAll("tr"): 
    cells = row.findAll("td") 
    write_to_file = cells[0].find(text=True) + "," + cells[1].find(text=True) 
+ "\n" 
    write_to_unicode = write_to_file.encode('utf-8') 
    f.write(write_to_unicode) 
f.close() 

ich dieses Muster von Code für viele andere ähnliche Tabellen wiederholt, jedoch für einige Verbindungen (wie die, die ich hier geschrieben), die chinesischen Tabellen heruntergeladen werden mit seltsame Charaktere. Hier ist das Beispiel.

´úÂë,³ÇÏç·ÖÀà,Ãû³Æ 
510681114001,121,½ÖµÀ¾ÓÃñίԱ»á 
510681114201,220,ðÀÃù´å´åÃñίԱ»á 
510681114202,220,°×º×´å´åÃñίԱ»á 
510681114203,122,Áâ½Ç´å´åÃñίԱ»á 
510681114204,122,»Æ¼Òµê´å´åÃñίԱ»á 
510681114205,122,»¨ÌÁ´å´åÃñίԱ»á 
510681114206,220,ÔÂÍå´å´åÃñίԱ»á 
510681114207,122,°×ÔÆ´å´åÃñίԱ»á 
510681114208,220,Á¹Ë®¾®´å´åÃñίԱ»á 
510681114209,122,Çàþh´å´åÃñίԱ»á 

Was soll ich tun, um diese Tabelle in echtes Chinesisch zu konvertieren, oder was soll ich tun, um die chinesische Tabelle herunterzuladen?

Das Problem ist, wenn ich GB2312 wählen, vielleicht für diese Tabelle, kann es mit Chinesisch korrekt angezeigt werden, aber für andere Tabellen, wird es immer noch diese lästigen seltsamen Zeichen zeigen.

+0

Wenn die Daten mit unterschiedlichen Codierungen codiert sind, müssen Sie dies einzeln behandeln. Entweder Sie programmieren das manuell (mit einer Liste von Paaren für jede Quelle) oder Sie können sich einen einfachen Test vorstellen, um zu entscheiden, welche Kodierung für jede Tabelle gewählt werden soll. – lenz

Antwort

0

Ich habe gerade die Inspiration von hier http://zzi.io/?p=275 zum Beispiel

a=u"´úÂë" 
print a.encode('iso-8859-1').decode('gbk') 

Ergebnis ist

代码 

So dieses Problem gelöst ist teilweise.

Verwandte Themen