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 :

ERROR 1300 (HY000): caractères accentués refusés


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai Avatar de GuyAntonin
    Homme Profil pro
    Bidouilleur informatique
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Bidouilleur informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 11
    Points
    11
    Par défaut ERROR 1300 (HY000): caractères accentués refusés
    Bonsoir,

    Encore un truc qui a le don d'énerver. Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE DATABASE test;
    USE test;
    SET NAMES utf8;
     
    CREATE TABLE Test (
      id smallint(5) unsigned NOT NULL AUTO_INCREMENT,
      nom varchar(100) NOT NULL,
      PRIMARY KEY (id)
    ) ENGINE=InnoDB;
     
    INSERT INTO Test VALUES (1,'Dupont'), (2,'Boudur');
    INSERT INTO test VALUES (3, Dédé);
    Le 1er INSERT TO passe sans problème. Le 2nd génère :
    ERROR 1300 (HY000): Invalid utf8 character string: 'D\x82d\x82'
    Où est la bug ? Je croyais qu'utf8 comprenait plus de 1 M de caractères !

    Un fois de plus, merci pour vos lumières.
    Cordialement - Antonin

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Si c'est bien la commande INSERT INTO test VALUES (3, Dédé); que tu passes, il est normal que ce soit refusé puisque que Dédé n'est pas un nom d'objet valide.
    Essaye avec INSERT INTO test VALUES (3, 'Dédé');
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre à l'essai Avatar de GuyAntonin
    Homme Profil pro
    Bidouilleur informatique
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Bidouilleur informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Bonsoir,

    En lisant ton post, je me suis traité de ... tout ce que tu veux. Bourrel aurait dit "Bon sang, mais c'est bien sûr !". Donc je teste et voici le résultat :
    mysql> INSERT INTO test VALUES (3, 'Dédé');
    Query OK, 1 row affected (0.01 sec)

    mysql> SELECT * FROM test;
    +----+--------+
    | id | nom |
    +----+--------+
    | 1 | Dupont |
    | 2 | Boudur |
    | 3 | Dédé |
    +----+--------+
    3 rows in set (0.00 sec)
    Alors je récupère la chaîne de caractère qui pose problème :
    mysql> INSERT INTO test VALUES (4, 'Bestiole à quatre pattes qui aime les caresses et tire souvent la langue');
    ERROR 1366 (HY000): Incorrect string value: '\x85 quat...' for column 'nom' at row 1
    Ne reculant devant aucun effort et voulant comprendre, je relance la précédente requête :
    mysql> INSERT INTO test VALUES (4, 'Dédé ');
    ERROR 1366 (HY000): Incorrect string value: '\x82d\x82 ' for column 'nom' at row 1
    Résultat: un truc de fou, je te dis !!!

    Cordialement - Antonin

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut vercingetorix

    Et si vous supprimiez la ligne "set names utf8" ?

    Vous avez un problème d'accents entre votre base de données et la transmission de la requête au SGBDR MySql.
    Pour résoudre ce problème, écrivez correctement ce que vous désirez faire :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
        DEFAULT CHARACTER SET `utf8`
        DEFAULT COLLATE       `utf8_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `test`
    --------------
     
    --------------
    CREATE TABLE `test`
    ( `id`   integer  unsigned not null auto_increment primary key,
      `nom`  varchar(255)      not null
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`utf8` COLLATE=`utf8_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `test` (`nom`) values
      ('Dupont'),('Boudur'),('Dédé'),('Forêt')
    --------------
     
    --------------
    select * from `test`
    --------------
     
    +----+--------+
    | id | nom    |
    +----+--------+
    |  1 | Dupont |
    |  2 | Boudur |
    |  3 | Dédé   |
    |  4 | Forêt  |
    +----+--------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
    Appuyez sur une touche pour continuer...
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre à l'essai Avatar de GuyAntonin
    Homme Profil pro
    Bidouilleur informatique
    Inscrit en
    Décembre 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Bidouilleur informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 16
    Points : 11
    Points
    11
    Par défaut
    Bonjour Artemus,

    Ce message pour vous exprimer la honte que je ressens . La solution ayant été bonne, j'ai continué tête baissée dans mon truc et... j'ai zappé une règle fondamentale de civisme : MERCI !!

    Je vous présente toutes mes excuses. Cordialement - Antonin

    PS : J'ai adoré Les Mystères de l'Ouest.

Discussions similaires

  1. Caractères accentués avec <html:link>
    Par papysam dans le forum Struts 1
    Réponses: 5
    Dernier message: 25/05/2007, 15h18
  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, 17h12
  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, 22h39
  4. [PostgreSQL] Les caractères accentués ?
    Par yacomor dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/02/2003, 16h30
  5. insérer des caractères accentués INFORMIX/JDBC
    Par donde dans le forum Informix
    Réponses: 2
    Dernier message: 19/11/2002, 20h02

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