Probleme de conversion des caracteres speciaux

Voilà mon problème ne concerne pas vraiment Debian mais je ne sais pas où chercher.

Je dois convertir une base de données issue d’un logiciel de gestion documentaire vers un autre.
Le prob c’est que les caractères spéciaux se transforment en signes cabalistiques à l’arrivée.

ex de notice qui “passe” bien, les caractères spéciaux sont codés :

ex de notice qui ne passe pas, les caractères spéciaux figurent tels quels :

je pense qu’il doit exister des moyens de convertir le texte mais je ne sais absolument pas dans quelle direction chercher

C’est un problème classique de codepage. Voir iconv par exemple.

Oui c’est bien un tool ou une commande de conversion qu’il me faut, ça mais je ne sais pas reconnaître à quel codage j’ai affaire en éditant le fichier, donc je ne sais pas quels arguments passer à la commande

Par ex ma notice qui contient les caractères accentués tels quels é è à etc.
c’est quel codage ? latin1, UTF iso…?

celle ou les caratères speciaux sont codés Ãe Âe etc… c’est quel codage ? :open_mouth: :blush:

Si tu ne sais pas comment est encodée ta base, la seule solution que je connaisse, c’est d’essayer avec différents encodages et de voir lequel convient.

En général c’est latin1 ou iso-8859-1, voir cp852 (de mémoire) pour des applications plus anciennes.

Attention ensuite quand tu ré-injecte dans ton nouveau système, de bien lui donner l’encodage qu’il attend !

Usti

j’ai déjà essayé avec les charset 8859 et UTF

latin vers iso et utf : pas de resultat
iso vers utf et latin : pas de resultat

La conversion depuis UTF8 me renvoie un message d’erreur alors j’ai essayé avec l’option //TRANSLIT mais ça passe pas non plus:

root@ServeurPMB/home/administrateur/Bureau:iconv -f UTF-8 -t iso-8859-1//TRANSLIT AFC-2notices.unimarc > AFC-2notices.unimarc.ISOversUTF-8 iconv: séquence d'échappement non permise à la position 289 (*)
289 : çàd dès qu’il rencontre le premier caractère accentué dans le fichier
bon en meme temps je nee m’attendais pas a trouver de l’UTF-8 car BGP le logiciel qui exporte ces fichiers est un vieux soft dont le dev est arreté depuis bien longtemps

la conversion depuis cp852 même erreur

(*) tiens ! on dirai que mon putty rencontre un problème similaire ;o)

Pour connaitre l’encodage de ton fichier, tu peux utiliser l’utilitaire “enca” présent dans les dépôts, ou bien en l’ouvrant avec Vim puis en tapant “:set fenc”

Maginifique vi me répond fileencoding=latin1 \°/

j’avais précédemment essayé la commande file -i nomdufichier qui m’avait renvoyé charset=binary :blush:

edit : hum les fichier unimarc qui passent bien sont eux aussi en latin1.
donc ça se passe peut-être au niveau du script d’import.

j’ai essaye avec un rechercher/remplacer et ca marche… dans l’absolu
mais comme je dois garder le même nombre de caractère dans un bloc donc en fait c’est pas u en bonne soluce

je vais plutot passer par un truc du genre :

UPDATE aaa SET texte = replace(texte, ‘hello’, ‘olla’);

une fois que le mal est fait et que les données sont dans les tables SQL