IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Convertir des tables en UTF-8


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 57
    Points
    57
    Par défaut Convertir des tables en UTF-8
    Bonjour,

    Je veux convertir mon site en UTF-8. Mon site étant en (re)développement c'est le moment de passer à une norme large et qui permet d'écrire tous les caractères que l'on veut .

    Si j'ai bien compris pour les pages de scripts il suffit d'utiliser un éditeur qui gère UTF-8, comme jedit. Si les pages étaient en ASCII on les convertit en UTF-8 grâce à notepad par exemple. En changeant bien sur le charset dans ces pages.

    J'ai cependant un problème en ce qui concerne ma base de données. En effet j'ai lu que pour convertir des tables en UTF-8 il fallait les d/l sur mon pc, les réenregistrer en UTF-8 sous notepad (ou autre) et les réinjecter dans la bdd.
    Mais en faisant cela ça me sort une erreur lors de la tentative d'insertion dans la bdd :

    Erreur
    Il semble que vous ayiez trouvé une anomalie dans l'analyseur syntaxique SQL. Veuillez examiner votre requête attentivement, et vérifier que vos apostrophes sont conformes. Il se pourrait aussi que vous ayiez chargé un fichier dont le contenu binaire n'est pas entre apostrophes. Si vous avez accès à MySQL via son interface de commande en mode ligne, vous pouvez y essayer votre requête. Le message d'erreur présenté plus bas pourrait vous indiquer la source du problème. En dernier recours, veuillez trouver la plus courte requête possible qui cause le problème, et soumettre un rapport d'anomalie en incluant la section à couper:
    ----Début de la section à couper----
    eNodzctSgzAAheF9nuIsuoQ0RGJpdoixMhMuEqyOG4uCygw3oXbqs3XhI/kKUrdn/jmfyrIkkwgc
    BBxaxRIOOFxGTD7PJ0KCrZFYhKXE9NkMxThVI23qFzp8DNYBnF5STl1wxtwlu1gyAceTgkvhoqna
    NdRxwIJE3+ZOS7iUUWdlT/uiK4uxtJv+ndybDImx4G9UnFvYqpl9qDtEyVOotQ9BGUkjX86UoCuS
    3qbnxkrM+c6lDnTdfR2J9uONxNto11Nve55Y2w75N39PP9dZkiL3r7RCeAP1GJrcYDdWh2p6fu3b
    tur20+4P+5lI1A==
    ----Fin de la section à couper----
    ----Début des informations sur l'anomalie----

    ERROR: C1 C2 LEN: 1 2 40
    STR: »

    CVS: $Id: sqlparser.lib.php,v 2.6.2.4 2004/03/05 18:52:54 lem9 Exp $
    MySQL: 4.0.17-standard-log
    USR OS, AGENT, VER: Win MOZILLA 5.0
    PMA: 2.5.7
    PHP VER,OS: 4.4.1 Linux
    LANG: fr-iso-8859-1
    SQL: DROP TABLE IF EXISTS `reves_comments`

    ----Fin des informations sur l'anomalie----
    Je dois m'être trompé dans la conversion, non ?

  2. #2
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Salut,

    A partir de MySQL 4.1 il y a plus simple pour convertir tes tables :

    Depuis MySQL 4.1.2, si vous voulez changer dans toutes les colonnes de texte (CHAR, VARCHAR, TEXT) le jeu de caractères, vous pouvez utiliser la commande suivante :

    ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;

    C'est pratique lorsque vous passez de MySQL 4.0.x en 4.1.x. See Section 10.10, « Préparer le passage de version 4.0 en 4.1 ».

    Attention : l'opération précédente va convertir les valeurs des colonnes entre les deux jeux de caractères. Ce n'est pas ce que vous souhaitez faire si une colonne est de type latin1 mais que les valeurs sont en fait dans un autre jeu de caractères (comme utf8). Dans ce cas, vous devez faire ceci avec une telle colonne :

    ALTER TABLE t1 CHANGE c1 c1 BLOB;
    ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;

    La raison est que dans ce cas, il n'y aura pas de conversion lorsque vous passer en type BLOB.

    Pour ne changer que le type de caractères par défaut, utilisez cette commande :

    ALTER TABLE tbl_name DEFAULT CHARACTER SET charset_name;

    Le mot DEFAULT est optionnel. Le jeu de caractères par défaut est utilisé si vous ne spécifiez pas le jeu de caractères de la colonne explicitement, lorsque vous ajoutez une nouvelle colonne : par exemple, avec ALTER TABLE ... ADD column.

    Attention : depuis MySQL 4.1.2 et plus récent, ALTER TABLE ... DEFAULT CHARACTER SET et ALTER TABLE ... CHARACTER SET sont équivalent et ne changent que le jeu de caractères par défaut. Dans les versions antérieures à MySQL 4.1.2, ALTER TABLE ... DEFAULT CHARACTER SET changeait le jeu de caractères par défaut, mais ALTER TABLE ... CHARACTER SET (sans DEFAULT) changeait le jeu de caractères par défaut, et convertissaient les colonnes dans le nouveau jeu.
    http://dev.mysql.com/doc/refman/5.0/fr/alter-table.html
    Pensez au bouton

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 109
    Points : 57
    Points
    57
    Par défaut
    Mais OVH est encore sur MySQL 4.0.17...

Discussions similaires

  1. [SQL Server 2000] Convertir base ou table en utf-8
    Par lnhf dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 02/12/2009, 12h05
  2. Convertir des fichiers de windows-1252 en UTF-8
    Par Baptiste Wicht dans le forum Windows
    Réponses: 3
    Dernier message: 21/10/2009, 14h46
  3. Outils (vista) pour convertir des fichiers vers l'UTF-8 ?
    Par Sergejack dans le forum Windows
    Réponses: 5
    Dernier message: 12/12/2008, 13h44
  4. Réponses: 2
    Dernier message: 16/02/2007, 12h45
  5. noms des tables d'une base
    Par molto dans le forum SQL
    Réponses: 2
    Dernier message: 17/03/2003, 22h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo