utf8 tronqués lors de l'importation dans mysql

Importation UTF8-codée de données dans mysql ne fonctionne pas pour moi. Les caractères UTF8 sont endommagés. Par exemple Nöthnagel est affiché comme Nöthnagel

J'ai créé un dump sql de fichier pour effectuer l'importation qui contient codé en UTF-8 données. Par exemple:

INSERT INTO `users` VALUES(1, 'Fred','Nöthnagel');

La séquence d'octets représentant ö dans le fichier est c3 b6 qui je crois est correcte, car elle s'affiche correctement dans vim et dans mon shell bash qui a ces variables d'environnement définies:

$ env | grep -i utf
LANG=en_US.UTF-8
XTERM_LOCALE=en_US.UTF-8

La base mysql a été créé comme suit:

mysql> CREATE DATABASE mydb CHARACTER SET utf8;

La table mysql a été créé afin de:

CREATE TABLE `users` (  
    `id` int(11) NOT NULL AUTO_INCREMENT,  
    `first_name` varchar(30) NOT NULL,  
    `last_name` varchar(30) NOT NULL,
    PRIMARY KEY (`id`),  
    UNIQUE KEY `last_name` (`last_name`)  
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;  

Je suis d'importer le fichier de vidage de la sorte:

 mysql -u root -psecret mydb < mydump.sql

S'il vous plaît dites-moi ce qui est manquant à partir de ci-dessus.

  • c'est un bon résumé, mais comment fais-tu l'affichage final qui donne Nöthnagel
  • Avez-vous vérifier votre fichier d'encodage ?
  • Ont essayé d'utiliser des NOMS de déclaration ? dev.mysql.com/doc/refman/5.0/en/charset-connection.html
  • Les données d'origine sur un site web de django qui utilise sqlite. Le site web est maintenant en cours d'exécution mysql. Seules les données et le django config ont changé, de sorte qu'il est facile de les comparer
  • Les données codées pour la ... dans le fichier est c3 b6. J'ai vérifié d'autres sources pour confirmer que c'est bien en utf8
InformationsquelleAutor handros | 2012-11-05