2016-12-31 2 views
0

J'ai réussi à configurer mon serveur Ubuntu 16.04 LTS LAMPS pour que MySQL 5.7 supporte maintenant complètement les jeux de caractères utf8mb4. Les jeux de caractères asiatiques et français peuvent être entrés directement dans la base de données XATAFace sans problème.encodage utf8mb4 des fichiers csv pour l'importation vers MySQL

Quand j'importer des fichiers CSV dans MySQL avec l'interface d'administration phpmyadmin les fichiers csv je suis en train de faire avec des personnages en langue française ne sont pas importées, jetant l'erreur d'importation familar mysql:

1366 Incorrect String value: ‘\xE9ciali…’ for column . . . .

Je devine une éditeur de texte qui peut encoder des fichiers CSV comme utf8mb4 est ce qui est nécessaire; s'il vous plaît corrigez-moi si c'est faux. Existe-t-il un éditeur de texte sur la plate-forme Windows qui permettrait d'encoder les fichiers csv sur utf8mb4 afin que je puisse importer mes csv avec succès dans MySQL?

Des idées sur la façon dont cet obstacle d'importation csv peut être surmonté?

Merci à l'avance Mark, Michigan Saginaw

+0

Lorsque vous ouvrez le fichier csv dans votre éditeur de texte, voyez-vous les caractères UTF8 ou leur conversion ASCII? – jcorry

+0

Veuillez ajouter un hexdump de l'élément de données incriminé à votre question. (s'il y a un '\ xe9cia' dedans c'est ** pas ** utf8, mais probablement juste un binaire, comme cp1252) – wildplasser

Répondre

2

utf8mb4 est tout simplement UTF-8 par tout autre programme.

UTF-8 par la norme est JUSQU'A 4-octets par caractère (octet chaque est de 8 bits de ), mais pour une raison quelconque MySQL UTF-8 est seulement jusqu'3-octets par caractères peuvent donc pas montre le jeu de caractères complet UTF-8. D'où le mb4; Quand les gens se sont plaints à MySQL de ce concept de wyrd, ils ont défini UTF-8 multibyte 4 comme le jeu complet de caractères UTF-8.

Il existe plusieurs problèmes avec les produits Microsoft ne pas être en mesure d'encoder correctement les fichiers CSV comme UTF-8; et ne pas être en mesure d'importer correctement les fichiers CSV UTF-8.

Vous pouvez également lire similar questions sur la façon d'obtenir PHPMyAdmin pour importer correctement les fichiers CSV.

Il y a far too many raisons possibles pour votre question, mais au premier départ, je dirais que l'utilisation d'un programme tel que NotePad++ ou OpenOffice (libre) qui peut travailler de façon cohérente avec les fichiers CSV, puis prenez vos données d'origine et l'enregistrer comme UTF-8 ou un autre jeu de caractères englobant tout comme Windows-1252.

This topic et this topic pourrait également être un oeil très utile pour les questions générales UTF-8 et web.


De plus, vous pourriez besoin d'ajouter un Byte Order Mark à votre fichier CSV UTF-8 (ce qui est la cause du problème Microsoft Excel référencé ci-dessus). This answer aide avec ceci. Vous pouvez également read here pour plus d'informations sur l'utilisation des nomenclatures.

Bonne chance.

0

Si cela est typique des données dont vous disposez, connectez-vous à latin1 au lieu de utf8. MySQL va convertir au CHARACTER SET défini pour les colonnes. Si vous utilisez LOAD DATA (pour importer un fichier .csv), il existe une clause permettant d'établir la source CHARACTER SET.