[英]Python unicode decoding encoding
這是我的完整代碼,它與ASCII工作正常,但是當圖片中出現“unicode”字符時......我討厭我的生活......
我知道這不是英語,但讓我解釋一下:
我有2個輸入文件(realmek,nevek)和1個結果文件(osszes)。
我在(html)有一個工作頁面。
但是當我嘗試使用奇怪的字符時:“űáéđĐ”我需要在UNICODE中保存2個輸入和1個輸出文件。 但是我的程序丟失了“編碼解碼”錯誤。 而且我知道這是正常的。
所以我的問題是: 我該如何解決這個問題? 我需要處理解碼編碼?
我想了3天......我嘗試了很多解碼,比如“u = unicode(s,”utf-8“)”; $ export LANG = en_US.UTF-8; 等但它沒有奏效。
from urllib import urlopen
import re
faj = "hiba"
cast = "hiba"
pont = 0
szint = 0
fj = open("C:\Users\Rendszergazda\Desktop\Achievements\Realmek.txt", "r")
tombr = fj.readline()
realmek = tombr.split(" ")
fj.close()
fh = open("C:\Users\Rendszergazda\Desktop\Achievements\Nevek.txt", "r")
tomb = fh.readline()
nevek = tomb.split(" ")
fh.close()
osszes = open("C:\Users\Rendszergazda\Desktop\Achievements\Osszes.txt", "a")
for x in realmek:
realm = x
for y in nevek:
nev = y
lap = urlopen("http://eu.battle.net/wow/en/character/"+str(realm)+"/"+str(nev)+"/achievement").read()
letezik = re.compile('<div id="server-erro(.*)">')
letez = re.findall(letezik,lap)
if (letez != []):
a = 0
else:
lapn = lap.split("\n")
mapo = lapn[1087]
pontos = re.compile('\t\t\t\t\t(.*)\r')
pont = re.findall(pontos,mapo)
mapom = lapn[1322]
feastn = re.compile('<div class="bar-contents">\t\t\t\t\t\t\t\t\t\t\t\t(.*)\r')
feast = re.findall(feastn,mapom)
fajkeres = re.compile('</strong></span> <a href="/wow/en/game/race/(.*)" class="race">')
castkeres = re.compile('</a> <a href="/wow/en/game/class/(.*)" class="class">')
szintkeres = re.compile('<span class="level"><strong>(.*)</strong></span> <a href="/wow/en/game/')
faj = re.findall(fajkeres,lap)
cast = re.findall(castkeres,lap)
szint = re.findall(szintkeres,lap)
link = "http://eu.battle.net/wow/en/character/"+str(realm)+"/"+str(nev)+"/advanced"
ccast = cast [0]
ffaj = faj [0]
sszint = szint [0]
ppont = pont [0]
ffeast = feast [0]
osszes.write(str(nev)+" "+str(realm)+" "+str(ppont)+" "+str(ffeast)+" "+str(ffaj)+" "+str(ccast)+" "+str(sszint)+" "+str(link)+"\n")
osszes.close()
而不是普通打開,使用codecs.open
來讀取和寫入您的文件。 它們采用可選參數來指定要使用的編碼。 確保您可以正確讀取,打印和寫入非ASCII文本(它將被視為腳本中的unicode), 然后檢查您是否正在使用任何需要調整的正則表達式。
此外,如果您在python源代碼中使用任何非ascii字符,請通過添加類似於第一行或第二行的內容來聲明腳本的編碼:
# -*- coding: utf-8 -*-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.