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

Forkert strengværdi, når du forsøger at indsætte UTF-8 i MySQL via JDBC?

MySQL's utf8 tillader kun Unicode-tegn, der kan repræsenteres med 3 bytes i UTF-8. Her har du et tegn, der skal bruge 4 bytes:\xF0\x90\x8D\x83 (U+10343 GOTHIC LETTER SAUIL ).

Hvis du har MySQL 5.5 eller nyere, kan du ændre kolonnekodningen fra utf8 til utf8mb4 . Denne kodning tillader lagring af tegn, der optager 4 bytes i UTF-8.

Du skal muligvis også indstille serveregenskaben character_set_server til utf8mb4 i MySQL-konfigurationsfilen. Det ser ud til, at Connector/J er standard til 3 -byte Unicode ellers :

For at bruge 4-byte UTF-8-tegnsæt med Connector/J, skal du konfigurere MySQL-serveren med character_set_server=utf8mb4 , og lad characterEncoding stå ud af Connector/J-forbindelsesstrengen. Connector/J vil derefter automatisk registrere UTF-8-indstillingen.



  1. Hvad er SQL Server RAISERROR?

  2. Ændring af Django-udviklingsdatabase fra standard SQLite til PostgreSQL

  3. MySql sum elementer af en kolonne

  4. Flytning af data fra SQL Server til Oracle gentagne gange