sql >> Database teknologi >  >> RDS >> Mysql

MySQL kaster forkert strengværdifejl

Det er karakteren i slutningen af ​​tweetet, der forårsager problemet.

Det ligner en "emoji"-karakter alias japansk smiley, men den vises ikke for mig i hverken Chrome eller Safari.

Der er kendte problemer med at gemme 4byte utf-tegn i nogle versioner af MySQL. Tilsyneladende skal du bruge utf8mb4 til at repræsentere 4 byte UTF-tegn, da det normale utf8-tegnsæt kun kan repræsentere tegn op til 3 bytes i længden og derfor ikke kan gemme tegn, der er uden for Basic Multilingual Plane

http://dev.mysql.com/doc /refman/5.5/da/charset-unicode-utf8mb4.html

Hvilket er nyt for mig, da det dybest set betyder, at utf8-datatypen i MySQL ikke er rigtig utf8.

Der er forslag til hvordan man håndterer dette herHvordan indsætter man utf-8 mb4-tegn(emoji i ios5) i mysql? inklusive:

"Sørg også for, at dit applag indstiller dets databaseforbindelsers tegnsæt til utf8mb4. Dobbelttjek, at dette rent faktisk sker – hvis du kører en ældre version af dit valgte frameworks mysql-klientbibliotek, er det muligvis ikke blevet kompileret med utf8mb4-understøttelse og det vil ikke indstille tegnsættet korrekt. Hvis ikke, skal du muligvis opdatere det eller kompilere det selv"

Hvis du bruger Connector/J, skal du indstille character_set_server=utf8mb4 i forbindelseskonfigurationen.

Alle dine tegnsæt skal være utf8mb4, som du måske har prøvet, men ikke er indstillet i øjeblikket.



  1. 9 virkelig nyttige MySQL-datofunktioner, der er nemme at huske

  2. Sletning af dubletter fra en stor tabel

  3. Du kan nu bruge Access med Microsoft Azure MFA!

  4. Opdatering af visninger i MySQL