import os import re def deep_clean(content): # Padrão quádruplo corrompido (ex: ÃÆ’ƒÂ¡ -> á) patterns = { r'ÃÆ’ƒÂ¡': 'á', r'ÃÆ’ƒÂ£': 'ã', r'ÃÆ’ƒÂª': 'ê', r'ÃÆ’ƒÂ§': 'ç', r'ÃÆ’ƒÂ³': 'ó', r'ÃÆ’ƒÂ­': 'í', r'ÃÆ’ƒÂº': 'ú', r'ÃÆ’ƒÂ©': 'é', r'ÃÆ’ƒÂ´': 'ô', r'ÃÆ’ƒÂ ': 'à', r'ÃÆ’ÂÂ§ÃÆ’£': 'çã', r'ÃÆ’§': 'ç', r'ÃÆ’£': 'ã', r'ÃÆ’¡': 'á', r'ÂÂÂ': '', # Lixo residual r'Æ’': '', # Lixo residual r'ÃÆ’': '', # Lixo residual } # Rodar as substituições mais complexas primeiro for pattern, replacement in patterns.items(): content = re.sub(pattern, replacement, content) # Limpeza final de caracteres simples se sobrarem simple_fixes = { 'á': 'á', 'ã': 'ã', 'ê': 'ê', 'ç': 'ç', 'ó': 'ó', 'í': 'í', 'ú': 'ú', 'é': 'é', 'ô': 'ô' } for old, new in simple_fixes.items(): content = content.replace(old, new) return content def process_file(path): try: with open(path, 'r', encoding='utf-8') as f: content = f.read() cleaned = deep_clean(content) if cleaned != content: print(f"Limpeza profunda: {path}") with open(path, 'w', encoding='utf-8') as f: f.write(cleaned) except Exception as e: print(f"Erro em {path}: {e}") if __name__ == "__main__": dir_path = r"C:\dev\saveinmed\frontend\src" for root, dirs, files in os.walk(dir_path): for f in files: if f.endswith(('.tsx', '.ts')): process_file(os.path.join(root, f))