Partage
  • Partager sur Facebook
  • Partager sur Twitter

[MySQL] Conversion de jeu de caractères

latin1_swedish_ci -> ?

    21 février 2011 à 10:22:17

    Bonjour,

    sur mon site BadLooser.fr, je n'ai aucun problème sur ma vue utilisateur (encodage ...), enfin si un petit sur un ou deux champs mais que je vais régler ce soir ;)

    Mon problème est dans le stockage de mes données dans ma base mySQL. Lorsque des données textuelles sont stockées et qu'elles contiennent des caractères accentués, ces caractères sont mal représentés. J'obtiens des beaux 'Ã@' ^^

    Tous mes champs ont un interclassement en latin1_swedish_ci.
    Après avoir lu ce tuto, je suppose donc qu'il faut passer ces champs en UTF-8. Ce que j'ai essayé de faire, mais mes données déjà stockées ne se convertissent pas automatiquement.

    Alors voici ma liste de question :
    - 'UTF-8 general' est-il le bon choix ?
    - Comment remettre à jour les champs où les caractères ne sont pas corrects ? (si possible avec un simple UPDATE et une fonction de conversion sur les champs à corriger)
    - Cela ne va-t-il pas impacter les données affichées sur mon site ?


    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      21 février 2011 à 10:52:22

      Le plus simple est de faire un dump de ta base et de la recharger avec le bon encodage.
      • Partager sur Facebook
      • Partager sur Twitter
        21 février 2011 à 10:54:06

        Un dump ? Désolé je connais pas ce terme ... eh oui un noob XD

        Et puis les données seront toujours polluées par les caractères "bizarres".
        • Partager sur Facebook
        • Partager sur Twitter
          21 février 2011 à 11:04:07

          dump = export sql dans phpmyadmin

          en gros tu exportes en latin1, tu obtiens un fichier qui contient en fait de l'utf8 (parce que tes données sont mal encodées) et tu le ré-importes en spécifiant utf8...
          • Partager sur Facebook
          • Partager sur Twitter
            21 février 2011 à 11:07:49

            Et comment je spécifie l'utf 8 au réimport ?
            • Partager sur Facebook
            • Partager sur Twitter
              21 février 2011 à 11:09:17

              édite les premières lignes du fichier, il y a une commande SQL pour (et profites-en pour vérifier que l'encodage est bon avec notepad++)
              • Partager sur Facebook
              • Partager sur Twitter
                21 février 2011 à 11:17:31

                A chaque fin de création de table, j'ai :

                DEFAULT CHARSET=latin1;
                


                à la place de latin1 je met quoi ?
                • Partager sur Facebook
                • Partager sur Twitter
                  21 février 2011 à 17:22:55

                  utf8_general_ci

                  et rajoute un "SET NAMES utf8" au début du fichier (ou modifie celui qui y est déjà).
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 février 2011 à 10:27:24

                    Après avoir ré-importer sur un nouvelle base vierge, toutes mes données avec les interclassements en utf8_general_ci, mes caractères "bizarres" restent présents dans mes champs texte. Ils n'ont pas été convertis en caractères accentués.

                    Existe-t-il une fonction pour convertir des champs textes au type iso... à utf8
                    ?

                    J'ai finit par extraire ma base, changer tous les caractères spéciaux à la main (remplacer par). Puis j'ai tout réinséré en utf8.

                    Maintenant ma page qui se trouve être codée en utf8 car dans le <head> j'ai charset="utf8" m'affiche des points d'interrogation à la place des caractères accentués. Comment résoudre ça ?

                    Ensuite, lorsque j'essaye d'ajouter de nouvelles données via un formulaire, le traitement de celui-ci tourne dans le vide. De quoi cela provient-il ?
                    • Partager sur Facebook
                    • Partager sur Twitter

                    [MySQL] Conversion de jeu de caractères

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown