Pour connaître l'encodage du texte Il semble que vous devriez essayer de décoder à partir d'une extrémité et utiliser celui qui a été décodé avec succès.
python
def conv_encoding(data):
lookup = ('utf_8', 'euc_jp', 'euc_jis_2004', 'euc_jisx0213',
'shift_jis', 'shift_jis_2004','shift_jisx0213',
'iso2022jp', 'iso2022_jp_1', 'iso2022_jp_2', 'iso2022_jp_3',
'iso2022_jp_ext','latin_1', 'ascii')
encode = None
for encoding in lookup:
try:
data = data.decode(encoding)
encode = encoding
break
except:
pass
if isinstance(data, unicode):
return data,encode
else:
raise LookupError
#Lecture de fichiers et enquête sur l'encodage
fp = open(path,'r')
str,encoding = None,None
try:
str,encoding = conv_encoding(fp.read())
finally:
fp.close()
#Modifier le contenu
...<N'importe quel code>
#Ecrire le fichier dans l'encodage d'origine
fp = open(path,'w')
try:
fp.write(str.encode(encoding))
finally:
fp.close()
Recommended Posts