[英]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.