Bonjour,
Je suis sous windows 10 et je code avec code::blocks et le compilateur gcc.
J'ai créé un programme qui modifie le contenu de fichier xsc. En fait c'est un fichier de paramétrage d'un programme de lecture de fichiers musicaux, avec des balises de mesures, entre autre. Ce fichier reprend le chemin complet du fichier musical en lien.
Mes lecteurs ont été renommés suite à un changement de pc et j'ai donc créé un code pour que les chemins des fichiers musicaux soit rétablis à l'aide de fopen, fgets, fputs. Comme je mets mes fichires xsc dans les mêmes répertoires que mes fichiers musicaux, j'ai créé un fichier txt dans lequel se trouve les chemins à réécrire. Tout va bien sauf pour les fichiers xsc qui 'pointent' vers un fichier musical dont le nom comporte des accents. Après des recherches je me suis rendu compte que les fichiers xsc de départ sont en utf-8, mais dès qu'il y a des accents dans ma ligne fgets, le fichier créé via fputs est converti en ANSI. Avec 'c'est la dans des canards.mp3' tout va bien, mais pour 'mèmère mèmère.mp3' je passe en ANSI. Je cherche depuis plusieurs jours à reconvertir ces fichiers en utf-8, ou plus simple, à forcer les fputs à écrire en utf-8.
J'ai vu que notepad et le bloc note permettent de convertir à la pièce mais j'ai une cinquantaine de fichiers à convertir. Et puis je voudrais relever le challenge... J'ai lu pas mal de choses sur les tables de caractères. J'ai également vu l'existence de ICU, mais je parviens pas à l'utiliser : où télécharger les headers, dans quel répertoire les mettre et quelles instructions utiliser dans le code ? Bref je suis perdu et comme ça a l'air d'être un problème de niche, je ne trouve pas grand chose comme exemple pour me guider.
Merci pour votre aide.
Olivier
Partager