Frågan börjar med en falsk premiss:
ASCII-tecken finns i intervallet "\x00" till och med "\x7F".
Det tidigare godkända nu raderade svaret fungerade under två grova missuppfattningar (1) att locale ==kodning (2) att latin1-kodningen mappar "\x80" till ett eurotecken.
Faktum är att alla ISO-8859-x-kodningar mappar "\x80" till U+0080, vilket är ett av C1-kontrolltecknen, inte ett eurotecken. Endast 3 av dessa kodningar (x in (7, 15, 16)) ger eurotecknet, som "\xA4". Se denna Wikipedia-artikel .
Du måste veta vilken kodning finns din data i. Vilken maskin skapades den på? Hur? Lokalen den skapades i (inte nödvändigtvis din) kan ge dig en ledtråd.
Observera att "Min data är kodad i latin1" står där uppe med "Checken är på posten" och "Självklart kommer jag att älska dig på morgonen". Dina data är förmodligen kodade i en av cp125x-kodningarna som finns på Windows-plattformar. Observera att alla utom cp1251 (Windows Cyrillic) mappar "\x80" till eurotecknet:
>>> ['\x80'.decode('cp125' + str(x), 'replace') for x in range(9)]
[u'\u20ac', u'\u0402', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac', u'\u20ac']
Uppdatera som svar på OP:s kommentar
Det här är lite förvirrande:Först säger du
Men senare säger du
Förklara gärna.
Välja en lämplig cp125x-kodning:Var (geografisk plats) skapades filen? På vilket/vilka språk är texten skriven? Några andra tecken än den förmodade euron med värden> "\x7f"? Om så är fallet, vilka och vilket sammanhang används de i?
Uppdatering 2 Om du inte "vet hur programmet är skrivet" kan varken du eller vi bilda dig en uppfattning om huruvida det alltid använder "\x80" för eurotecknet. Även om det skulle vara monumental enfald att göra något annat, kan det inte uteslutas.
Om texten är skriven på det engelska språket och/eller den är skriven i USA, och/eller den är skriven på en Windows-plattform, så är det rimligt säkert att cp1252
är vägen att gå ... tills du får bevis på motsatsen, i så fall måste du gissa en kodning själv eller svara på (vilket språk, vilken ort) frågorna.