sql >> Databasteknik >  >> RDS >> Mysql

Felaktigt strängvärde när du försöker infoga UTF-8 i MySQL via JDBC?

MySQL:s utf8 tillåter endast Unicode-tecken som kan representeras med 3 byte i UTF-8. Här har du ett tecken som behöver 4 byte:\xF0\x90\x8D\x83 (U+10343 GOTHIC LETTER SAUIL ).

Om du har MySQL 5.5 eller senare kan du ändra kolumnkodningen från utf8 till utf8mb4 . Denna kodning tillåter lagring av tecken som upptar 4 byte i UTF-8.

Du kan också behöva ställa in serveregenskapen character_set_server till utf8mb4 i MySQL-konfigurationsfilen. Det verkar som att Connector/J har 3 som standard -byte Unicode annars :

För att till exempel använda 4-byte UTF-8-teckenuppsättningar med Connector/J, konfigurera MySQL-servern med character_set_server=utf8mb4 , och lämna characterEncoding ut ur Connector/J-anslutningssträngen. Connector/J kommer då att automatiskt upptäcka UTF-8-inställningen.



  1. ScaleGrid höjer Growth Equity Round från Spotlight Equity Partners för att påskynda expansion och ytterligare investera i produktfärdplan

  2. Introduktion till synonymer i SQL Server

  3. Sammankoppling i Transact-SQL

  4. SQL-transponera hela tabellen