Convertir fichiers DXF ANSI en UTF-8 pour AutoCAD LT (Batch)

Comment convertir des fichiers DXF encodés en ANSI vers UTF-8 en mode batch pour éviter les erreurs d’affichage des caractères accentués dans AutoCAD LT 2020 ?

Lors de l’assemblage de fragments DXF ou de l’importation de données textuelles, il est fréquent que les fichiers résultants soient encodés en ANSI (Windows-1252 par défaut sur les systèmes francophones). AutoCAD LT, en particulier avec des versions comme 2020, peut mal interpréter les caractères accentués (é, à, ç, etc.) si le fichier n’est pas en UTF-8, entraînant des erreurs d’affichage ou à l’ouverture.

Pour résoudre ce problème de manière automatisée (batch), voici les méthodes recommandées :

  1. Utilisation de convertcp.exe (Méthode recommandée pour DXF sans BOM)
    Cet utilitaire en ligne de commande est idéal car il permet une conversion directe et, crucialement pour les fichiers DXF, sans ajouter l’Indicateur d’Ordre des Octets (BOM - Byte Order Mark). La présence d’un BOM en début de fichier DXF peut en effet provoquer des erreurs à l’ouverture dans AutoCAD.

    • Téléchargement : convertcp.exe est un utilitaire tiers, souvent disponible sur des forums spécialisés ou des dépôts de scripts (ex: dostips.com).
    • Syntaxe d’utilisation en batch :
      convertcp.exe 0 65001 /i "chemin\vers\votre_fichier_ansi.dxf" /o "chemin\vers\votre_fichier_utf8.dxf"
      
      • 0 représente l’encodage ANSI (Code Page 1252).
      • 65001 représente l’encodage UTF-8.
      • /i spécifie le chemin du fichier d’entrée.
      • /o spécifie le chemin du fichier de sortie.
  2. Utilisation de PowerShell (Méthode flexible, attention au BOM)
    PowerShell est intégré à Windows et offre une grande flexibilité pour les scripts. Cependant, la commande Set-Content -Encoding UTF8 dans les versions de PowerShell antérieures à la 6.0 ajoute par défaut un BOM, ce qui peut provoquer des erreurs à l’ouverture de DXF dans AutoCAD. Pour un DXF, il est préférable d’éviter le BOM.

    • Création du script PowerShell (.ps1) :
      Créez un fichier convert_ansi_to_utf8.ps1 avec le contenu suivant (adaptez les chemins) :
      $inputFile = "C:\Chemin\vers\votre_fichier_ansi.dxf"
      $outputFile = "C:\Chemin\vers\votre_fichier_utf8.dxf"
      
      # Lire le contenu du fichier ANSI
      $content = [System.IO.File]::ReadAllBytes($inputFile)
      
      # Créer un encodeur UTF8 sans BOM
      $utf8NoBom = New-Object System.Text.UTF8Encoding($false)
      
      # Écrire le contenu dans le nouveau fichier UTF8 sans BOM
      [System.IO.File]::WriteAllBytes($outputFile, $utf8NoBom.GetBytes($utf8NoBom.GetString($content)))
      
    • Exécution via un fichier Batch (.bat) :
      Créez un fichier .bat (ex: lancer_conversion.bat) pour exécuter le script PowerShell :
      @echo off
      Powershell.exe -executionpolicy remotesigned -File "C:\Chemin\vers\convert_ansi_to_utf8.ps1"
      pause
      
      Assurez-vous que la politique d’exécution de PowerShell (-executionpolicy remotesigned) permet l’exécution de scripts locaux.
  3. Vérification et Dépannage

    • Éditeurs de texte avancés : Utilisez des éditeurs comme Notepad++ ou Notepad2 pour ouvrir vos fichiers DXF convertis. Ces outils permettent de vérifier l’encodage réel du fichier (souvent affiché dans la barre d’état) et de s’assurer de l’absence de BOM si nécessaire.
    • Erreurs AutoCAD : Si AutoCAD affiche toujours des erreurs, vérifiez la première ligne du DXF. Un BOM mal placé ou un caractère inattendu peut être la cause. L’outil convertcp.exe est souvent plus fiable pour les DXF car il gère spécifiquement l’absence de BOM.

En suivant ces méthodes, vous devriez pouvoir automatiser la conversion de vos fichiers DXF ANSI en UTF-8, garantissant une meilleure compatibilité et un affichage correct des caractères dans AutoCAD LT.