Mysql server ne prend pas en charge les 4 octets codés en utf-8 caractères
J'ai reçu une erreur de serveur de l'exécution d'un transfert de Données composant de Sql Server vers MySql db.
Le message d'erreur se lit comme suit:
[MySql][ODBC 5.1 Driver][mysqld-5.0.67-community-nt-log]Server does not support 4-byte encoded UTF8 characters.
La source de Sql Server table contient des colonnes nvarchar, la cible MySql table contient des colonnes varchar.
Quelqu'un peut-il éclairer sur ce problème?
votre lien est obsolète. Le site n'est pas trouvé.
OriginalL'auteur YB. | 2009-12-11
Vous devez vous connecter pour publier un commentaire.
Si vous avez besoin de MySQL pour soutenir les 4 octets de caractères UTF-8 (ce qui est normalement considéré comme faisant partie de l'UTF-8), vous devez utiliser le jeu de caractères utf8mb4, pas en utf8. utf8mb4 a d'abord été pris en charge dans MySQL 5.5.3.
+1 Merci pour ce BIJOU de trouver. C'était une de ces découvertes, qui vous le savez est là mais il prend que quelques jours pour trouver. BRAVO. Le pilote s'est écrasé sur ce texte, "l'excentricité [ˌɛksɛnˈtrɪsɪtɪ] n pl -cravates" qui faisait partie de la description du dictionnaire pour le mot de l'excentricité. Il est apparu à un accident juste au point après la parenthèse droite ou le premier impair de caractères après le point.
OriginalL'auteur prosfilaes
J'ai eu le même problème que j'ai pu reproduire par simple mise à jour d'un
char(1)
colonne pour une ligne unique sur un serveur lié dans SQL 2008 à une base de données MySQL 5.1 DB:Cette erreur se passait sur un serveur nouvellement créé. J'ai eu un semblable de l'installation sur une autre machine, où le même code a très bien fonctionné. La seule différence était la version du pilote ODBC de MySQL: sur le nouveau serveur, il a été 5.2.2; sur l'ancien (de travail) de serveur, c'est 5.1.8 (aujourd'hui non pris en charge).
J'ai téléchargé et installé la version précédente du pilote ODBC (v5.1.11), et le problème a disparu.
OriginalL'auteur dbscissors
"4 octets codés en UTF-8 caractères" fait référence à des personnages avec des points de code
> 0xFFFF
, c'est à dire, ceux dont les points de code ne rentre pas dans les 16 bits (en dehors de la plan multilingue de base (BMP)). De nombreux anciens systèmes ne prennent pas en charge les caractères en dehors de la BMP.Les caractères en dehors de la BMP sont généralement des caractères CJK; je ne sais pas si c'est le cas avec vous ici. 🙂
OriginalL'auteur Chris Jester-Young
De la la documentation:
OriginalL'auteur wallyk
Mise à jour de votre serveur MySQL pour 5.5.3 et l'utilisation utf8mb4 pour la colonne d'encodage.
Forcer la copie
Créer une nouvelle table dans sql server avec la même structure que la table que vous avez besoin de copier
Changement de la nouvelle table colonne de type nvarchar(taille) -> varchar(taille x 2)
Copier les données dans le nouveau tableau
Copie de la SQLServer les données de la nouvelle table de MySQL
OriginalL'auteur shootsoft
Eu le même problème. Est-il possible de convertir les caractères avant de les insérer dans la base de données mysql?
J'ai une base de données MySQL sur un serveur web distant, rien de spécial. Maintenant, je suis en utilisant un Pilote ODBC pour se connecter à la Base de données MySQL distante avec mon MS SQL Server 2008. Cela fonctionne très bien, mais lorsque j'essaie d'insérer des valeurs de chaîne de MSSQL, l'erreur se produit. Avec des chiffres (int) il fonctionne très bien.
Syntaxe ressemble à
D'accord.
Je suis de regarder pour quelque chose comme
OriginalL'auteur Stefan Brendle
Il ressemble à un bug connu. Voici la question sur MySQL bugs.
http://bugs.mysql.com/bug.php?id=67428
OriginalL'auteur Shannon Looper
Je recevais ce message d'erreur avec 1 ordinateur client de faire une connexion ODBC à extraire des données dans une feuille de calcul excel. Plusieurs autres machines à mettre à jour cette même feuille de calcul sans trop de mal.
Après un peu de recherche, je n'ai rien trouvé, donc a commencé à expérimenter. La connexion ODBC a été le programme d'installation avec le MySQL pilote unicode. J'ai recréé la connexion à l'aide de la norme ANSI pilote et il fonctionne très bien.
Espère que cela aide quelqu'un d'autre.
OriginalL'auteur DaveNOk