import csv

input_file = "tarifs1.csv"
output_file = "tarifs_clean_utf8.csv"

def fix_double_encoded_utf8(text):
    try:
        # On filtre les caractères non encodables en latin1
        bytes_latin1 = text.encode('latin1', errors='ignore')
        return bytes_latin1.decode('utf-8', errors='ignore')
    except Exception:
        return text  # En cas de doute, on garde tel quel

def clean_value(value):
    cleaned = fix_double_encoded_utf8(value)
    cleaned = cleaned.replace(",", ".")  # décimales si besoin
    cleaned = cleaned.replace("�", "%")  # cas spécifiques résiduels
    return cleaned.strip()

with open(input_file, "r", encoding="utf-8", errors="ignore") as infile, \
     open(output_file, "w", newline="", encoding="utf-8") as outfile:

    reader = csv.reader(infile, delimiter=';')
    writer = csv.writer(outfile, delimiter=';')

    for row in reader:
        cleaned_row = [clean_value(cell) for cell in row]
        writer.writerow(cleaned_row)

print(f"✅ Nettoyage terminé : fichier écrit dans {output_file}")
