Spørgsmålet starter med en falsk præmis:
ASCII-tegn er i intervallet "\x00" til og med "\x7F".
Det tidligere accepterede nu slettede svar opererede under to grove misforståelser (1) at locale ==kodning (2) at latin1-kodningen tilknytter "\x80" til et Euro-tegn.
Faktisk knytter alle ISO-8859-x-kodningerne "\x80" til U+0080, som er et af C1-kontroltegnene, ikke et Euro-tegn. Kun 3 af disse kodninger (x i (7, 15, 16)) giver Euro-tegnet som "\xA4". Se denne Wikipedia-artikel .
Du skal vide hvilken kodning er dine data i. Hvilken maskine blev de oprettet på? Hvordan? Lokaliteten, den blev oprettet i (ikke nødvendigvis din) kan give dig et fingerpeg.
Bemærk, at "Mine data er kodet på latin1" står deroppe med "Checken er med posten" og "Selvfølgelig vil jeg elske dig i morgen". Dine data er sandsynligvis kodet i en af de cp125x-kodninger, der findes på Windows-platforme. Bemærk, at alle undtagen cp1251 (Windows kyrillisk) knytter "\x80" til euro-tegnet:
>>> ['\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']
Opdater som svar på OP's kommentar
Det er lidt forvirrende:Først siger du
Men senere siger du
Forklar venligst.
Valg af en passende cp125x-kodning:Hvor (geografisk placering) blev filen oprettet? På hvilket eller hvilke sprog er teksten skrevet? Andre tegn end den formodede euro med værdier> "\x7f"? Hvis ja, hvilke og hvilken sammenhæng bruges de i?
Opdatering 2 Hvis du ikke "ved hvordan programmet er skrevet", kan hverken du eller vi danne dig en mening om, hvorvidt det altid bruger "\x80" til euro-tegnet. Selvom det ville være monumental dumhed at gøre noget andet, kan det ikke udelukkes.
Hvis teksten er skrevet på engelsk og/eller den er skrevet i USA, og/eller den er skrevet på en Windows-platform, så er det rimeligt sikkert, at cp1252
er vejen at gå ... indtil du får bevis for det modsatte, i hvilket tilfælde du selv skal gætte en kodning eller besvare spørgsmålene (hvilket sprog, hvilken lokalitet).