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 :

Restaurer caractères accentués


Sujet :

Requêtes MySQL

  1. #1
    Membre chevronné
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 035
    Points : 2 062
    Points
    2 062
    Par défaut Restaurer caractères accentués
    Bonjour tout le monde,

    Le 19 Janvier, j'ai sauvegardé ma base par la commande "backup database as SQL dump" de SQL Yog.

    Pour une des tables ça a donné ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    CREATE TABLE `dbo_dimproductcategory` (
      `ProductCategoryKey` int(11) NOT NULL AUTO_INCREMENT,
      `ProductCategoryAlternateKey` int(11) DEFAULT NULL,
      `EnglishProductCategoryName` varchar(100) NOT NULL,
      `SpanishProductCategoryName` varchar(100) NOT NULL,
      `FrenchProductCategoryName` varchar(100) NOT NULL,
      PRIMARY KEY (`ProductCategoryKey`),
      UNIQUE KEY `AK_DimProductCategory_ProductCategoryAlternateKey` (`ProductCategoryAlternateKey`)
    ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
     
    /*Data for the table `dbo_dimproductcategory` */
     
    insert  into `dbo_dimproductcategory`(`ProductCategoryKey`,`ProductCategoryAlternateKey`,`EnglishProductCategoryName`,`SpanishProductCategoryName`,`FrenchProductCategoryName`) values (1,1,'Bikes','Bicicleta','Vélo');
    insert  into `dbo_dimproductcategory`(`ProductCategoryKey`,`ProductCategoryAlternateKey`,`EnglishProductCategoryName`,`SpanishProductCategoryName`,`FrenchProductCategoryName`) values (2,2,'Components','Componente','Composant');
    insert  into `dbo_dimproductcategory`(`ProductCategoryKey`,`ProductCategoryAlternateKey`,`EnglishProductCategoryName`,`SpanishProductCategoryName`,`FrenchProductCategoryName`) values (3,3,'Clothing','Prenda','Vêtements');
    insert  into `dbo_dimproductcategory`(`ProductCategoryKey`,`ProductCategoryAlternateKey`,`EnglishProductCategoryName`,`SpanishProductCategoryName`,`FrenchProductCategoryName`) values (4,4,'Accessories','Accesorio','Accessoire');
    Certains d'entre vous reconnaîtront peut-être cette table, elle est migrée de Adventure Workshops de Microsoft, il y en a quelques-unes comme ça.

    Un mois plus tard, après avoir refait la configuration, sur MySql 5.6 (je crois qu'il y a un mois c'était la même version ?) je restaure la base en ouvrant ce fichier SQL dans un éditeur de requêtes, et en l'exécutant.

    Pour le texte anglais, aucun problème.

    Mais le souci, c'est que quand on dit "INSERT INTO () VALUES ('Vélo')", MySql fait ... exactement ce qu'on lui dit, alors que le but est d'insérer Vélo.

    Puisque MySql Workbench est devenu stable, j'ai essayé avec du côté restauration, ça fait pareil.

    Le jeu de caractères par défaut de la base était Latin1 la dernière fois que j'ai installé MySql, c'était UTF8 cette fois, mais j'ai à nouveau essayé en précisant Latin1, pas mieux. De toute manière, les jeux de caractères sont précisés dans chaque table (il y a des différences pas nécessairement voulues d'une table à l'autre).

    Au demeurant, le dump global de la base commence par ceci :
    /*!40101 SET NAMES utf8 */;


    La question est plus ou moins évidente j'imagine : suis-je condamné à corriger les caractères accentués un par un ? Pour cette table ça va aller assez vite, mais il y en a des plus étoffées.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 716
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 716
    Points : 52 380
    Points
    52 380
    Billets dans le blog
    4
    Par défaut
    Permettez moi tout d'abord de vous dire que reproduire une base de données qui est une œuvre de l'esprit tout comme un livre un disque ou un film sans le consentement de son auteur (en l’occurrence Microsoft) est un plagiat qui est condamnable devant les tribunaux....

    Passez cette remarque, le fait de ne pas avoir les bons accents est propre à MySQL, ses jeux de caractères pourris et ses collations inexistantes....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [MySQL] sauvegarde/restauration et caractères accentués
    Par phil83 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/01/2006, 13h09
  2. Chaines avec caractères accentués dans interbase
    Par Tsimplice dans le forum Bases de données
    Réponses: 4
    Dernier message: 08/03/2004, 18h12
  3. Chaînes avec des caractères accentués dans Interbase
    Par François Marliac dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 23h39
  4. [PostgreSQL] Les caractères accentués ?
    Par yacomor dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/02/2003, 17h30
  5. insérer des caractères accentués INFORMIX/JDBC
    Par donde dans le forum Informix
    Réponses: 2
    Dernier message: 19/11/2002, 21h02

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