Python unicode解码编码

Python unicode解码编码,python,unicode,utf-8,character-encoding,decoding,Python,Unicode,Utf 8,Character Encoding,Decoding,这是我的完整代码,它可以很好地使用ASCII,但是当图片中出现“unicode”字符时。。。我讨厌我的生活 我知道这不是英语,但让我解释一下: 我有2个输入文件(realmek、nevek)和1个结果文件(osszes) 我有一个工作页面(html) 就像我对ANSI字符说的,这是有效的 但当我尝试使用奇怪的字符时:“űáđĐ”我需要用UNICODE保存2个输入文件和1个输出文件。但是我的程序掉了一个“编码-解码”错误。我知道这很正常 所以我的问题是:我如何解决这个问题?我需要在哪里处理解码

这是我的完整代码,它可以很好地使用ASCII,但是当图片中出现“unicode”字符时。。。我讨厌我的生活

我知道这不是英语,但让我解释一下:

我有2个输入文件(realmek、nevek)和1个结果文件(osszes)

我有一个工作页面(html)

  • 就像我对ANSI字符说的,这是有效的
但当我尝试使用奇怪的字符时:“űáđĐ”我需要用UNICODE保存2个输入文件和1个输出文件。但是我的程序掉了一个“编码-解码”错误。我知道这很正常

所以我的问题是:我如何解决这个问题?我需要在哪里处理解码编码?

我想了三天。。。我尝试了很多解码,比如“u=unicode(s,“utf-8”);$出口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()
从urllib导入urlopen
进口稀土
faj=“hiba”
cast=“hiba”
pont=0
szint=0
fj=open(“C:\Users\Rendszergazda\Desktop\progressions\Realmek.txt”,“r”)
tombr=fj.readline()
realmek=tombr.split(“”)
fj.关闭()
fh=open(“C:\Users\Rendszergazda\Desktop\progressions\Nevek.txt”,“r”)
坟墓=fh.readline()
nevek=坟墓。分开(“”)
fh.close()
osszes=open(“C:\Users\Rendszergazda\Desktop\productions\osszes.txt”,“a”)
对于realmek中的x:
领域=x
对于nevek的y:
nev=y
lap=urlopen(“http://eu.battle.net/wow/en/character/“+str(realm)+”/“+str(nev)+”/“/成就”)。read()
letezik=re.compile(“”)
letez=re.findall(letezik,圈)
如果(leetz!=[]):
a=0
其他:
lapn=重叠分割(“\n”)
mapo=lapn[1087]
pontos=re.compile('\t\t\t\t(.*)\r')
pont=re.findall(pontos,mapo)
mapom=lapn[1322]
feastn=re.compile('\t\t\t\t\t\t\t\t\t\t\t(.*)\r')
feast=关于findall(feastn,mapom)
fajkeres=re.compile(“”)

szintkeres=re.compile('(.*)使用
codecs.open
读取和写入文件。它们采用可选参数,用于指定要使用的编码。确保您可以正确读取、打印和写入非ascii文本(在脚本中它将被视为unicode),然后检查是否正在使用需要调整的正则表达式

此外,如果您在python源代码中使用任何非ascii字符,请在第一行或第二行添加如下内容来声明脚本的编码:

# -*- coding: utf-8 -*-

定义“它不工作”。您是否得到意外输出、异常、崩溃……请将错误详细信息编辑到您的问题中。它不会给出任何错误,只是给出堆栈溢出,因为UNICODE字符不会在同一位置,例如:mapo=lapn[1087]使用ASNII给出“16”,使用UNICODE源输入:给出UNICODE stings…以及在使用前需要解码的位置。写下问题,而不是错误,因为我知道错误是什么,问题是编码,但我不知道我需要首先在哪里对输入进行编码。我有一些类似的问题,我解决了。编码是顺便说一句,问题很严重。看看我的问题,试着从中提取建议。祝你好运!你的代码不是一个很好的代码,所以我们很难提供帮助。