Ho lo script, ma con un grave problema:
tale script legge e sostituisce i caratteri correttamente solo se il file ORIGINALE è in UF-8, altrimenti crea un file ANSI, ovvero la stessa codifica del file originale, con i caratteri sbagliati.
codice:
# -*- coding: utf-8 -*-
import tkFileDialog
def sostituisciCaratteri(sOriginale) :
caratteriSbagliati = ['¹','æ','ê','ñ','³','œ','¿','Ÿ','¥','Æ','Ê','Ñ','£','Œ','¯',''] #vettore dei caratteri da sostituire
caratteriAggiustati= ['ą','ć','ę','ń','ł','ś','ż','ź','Ą','Ć','Ę','Ń','Ł','Ś','Ż','Ź'] #vettore dei caratteri che rimpiazzeranno quelli sbagliati
unicode(sOriginale,'utf-8')
lunghezza = range(0,len(caratteriSbagliati))
for i in lunghezza:
sOriginale = sOriginale.replace(caratteriSbagliati[i], caratteriAggiustati[i])
return sOriginale
## Prova
fileOriginale = tkFileDialog.askopenfile(mode = 'r') #finestra per scegliere il file
fileAggiustato = open(fileOriginale.name+"_n.txt",'w') #crea un nuovo file
for line in fileOriginale.readlines():
fileAggiustato.write(sostituisciCaratteri(line))
Mi serve leggere dei caratteri da file in ANSI con righe del tipo:
POSIAD£OŒÆ ALTHORP, ANGLIA KWIECIEÑ 1774 KSIʯNA,SZEŒÆ LAT PÓNIEJ
Fare modifiche usando caratteri UTF-8 e quindi creare un file di destinazione, che esigo sia UTF-8 e contenga i caratteri corretti, del tipo:
POSIADŁOŚĆ ALTHORP, ANGLIA KWIECIEŃ 1774 KSIĘŻNA,SZEŚĆ LAT PÓŹNIEJ
Si tratta di partire da Ansi ed arrivare ad unicode, questo sembra essere il problema. Partire da unicode e restarci sembra facile.
Ho provato
fileAggiustato = open(fileOriginale.name+"_n.txt",'w','utf-8')
ma mi dà errore.
PS per far girare l'esempio occorrono le librerie Tkinter di python.