Probleme avec les caractères accentués en ut-8(sql)

Probleme avec les caractères accentués en ut-8(sql) - SQL/NoSQL - Programmation

Marsh Posté le 08-05-2006 à 14:33:14    

Apres que mon forum est été haché j'ai du réinstaller un sauvegarde de ma bdd mais le probleme est que j'avais sauvegardé celle-ci en utf-8 au lieu de latin-1. De ce fait tous les caractères accentués déconne.
exemple:

Code :
  1. Une toute petite critique quand même ! Il faudrait préciser la fonction...


 
Apres plusieurs recherche j'ai apris qu'il est possible de faire un REPLACE en ligne de commande SQL mais ça ne marche pas pour tous les caractères accentués.
 

Code :
  1. UPDATE ibf_posts SET post = REPLACE( post, "é", "é" ) ;# Nombre d'enregistrements affectés : 4589
  2. UPDATE ibf_posts SET post = REPLACE( post, "è", "è" ) ;# Nombre d'enregistrements affectés : 1597
  3. UPDATE ibf_posts SET post = REPLACE( post, "Ã", "à" ) ;# Nombre d'enregistrements affectés : 3909
  4. UPDATE ibf_posts SET post = REPLACE( post, "ê", "ê" ) ;# MySQL n'a retourné aucun enregistrement.
  5. UPDATE ibf_posts SET post = REPLACE( post, "ç", "ç" ) ;# MySQL n'a retourné aucun enregistrement.
  6. UPDATE ibf_posts SET post = REPLACE( post, "â", "â" ) ;# MySQL n'a retourné aucun enregistrement.
  7. UPDATE ibf_posts SET post = REPLACE( post, "ë", "ë" ) ;# MySQL n'a retourné aucun enregistrement.
  8. UPDATE ibf_posts SET post = REPLACE( post, "’", "'" ) ;# Nombre d'enregistrements affectés : 37
  9. UPDATE ibf_posts SET post = REPLACE( post, "û", "Û" ) ;# MySQL n'a retourné aucun enregistrement.
  10. UPDATE ibf_posts SET post = REPLACE( post, "â‚", "€" ) ;# Nombre d'enregistrements affectés : 28


 
Ca doit surement venir des caractères à remplacer mais après avoir passé plusieurs heures à rechercher je n'ai rien trouvé d'autre.
 
Si vous savez ou je peux trouver les caractères spéciaux aller y.

Reply

Marsh Posté le 08-05-2006 à 14:33:14   

Reply

Marsh Posté le 09-05-2006 à 11:08:25    

beber_bis a écrit :

Code :
  1. UPDATE ibf_posts SET post = REPLACE( post, "é", "é" ) ;# Nombre d'enregistrements affectés : 4589
  2. UPDATE ibf_posts SET post = REPLACE( post, "è", "è" ) ;# Nombre d'enregistrements affectés : 1597
  3. UPDATE ibf_posts SET post = REPLACE( post, "Ã", "à" ) ;# Nombre d'enregistrements affectés : 3909
  4. UPDATE ibf_posts SET post = REPLACE( post, "ê", "ê" ) ;# MySQL n'a retourné aucun enregistrement.
  5. UPDATE ibf_posts SET post = REPLACE( post, "ç", "ç" ) ;# MySQL n'a retourné aucun enregistrement.
  6. ...



 
Cela vient simplement de l'ordre dans lequel tu as fait tes replace :
 
à ta troisième requete, tu remplaces les "Ã" tous seuls par des "à"  
il ne peux donc plus y avoir de caractères "Ã", meme accompagnés sous la forme "ê" ou "ç" par la suite.
 
Place cette requete en dernier et ça ira.
 
 

Code :
  1. UPDATE ibf_posts SET post = REPLACE( post, "é", "é" ) ;
  2. UPDATE ibf_posts SET post = REPLACE( post, "è", "è" ) ;
  3. UPDATE ibf_posts SET post = REPLACE( post, "ê", "ê" ) ;
  4. UPDATE ibf_posts SET post = REPLACE( post, "ç", "ç" ) ;
  5. ...
  6. UPDATE ibf_posts SET post = REPLACE( post, "Ã", "à" ) ;


Message édité par PepMat le 09-05-2006 à 11:09:16
Reply

Marsh Posté le 09-05-2006 à 18:40:09    

Merci  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed