sql >> Database >  >> RDS >> Mysql

Onjuiste tekenreekswaarde bij het invoegen van UTF-8 in MySQL via JDBC?

MySQL's utf8 staat alleen de Unicode-tekens toe die kunnen worden weergegeven met 3 bytes in UTF-8. Hier heb je een teken dat 4 bytes nodig heeft:\xF0\x90\x8D\x83 (U+10343 GOTISCHE LETTER SAUIL ).

Als u MySQL 5.5 of hoger heeft, kunt u de kolomcodering wijzigen in utf8 naar utf8mb4 . Deze codering maakt opslag mogelijk van tekens die 4 bytes in beslag nemen in UTF-8.

Mogelijk moet u ook de servereigenschap character_set_server . instellen naar utf8mb4 in het MySQL-configuratiebestand. Het lijkt erop dat Connector/J standaard is ingesteld op 3 -byte Unicode anders :

Als u bijvoorbeeld 4-byte UTF-8-tekensets met Connector/J wilt gebruiken, configureert u de MySQL-server met character_set_server=utf8mb4 , en laat characterEncoding uit de Connector/J-verbindingsreeks. Connector/J zal dan automatisch de UTF-8-instelling detecteren.



  1. ORA-28000:het account is vergrendeld, fout wordt vaak weergegeven

  2. Hoe SQL Server op Red Hat 8 te installeren

  3. Geef WAAR parameters door aan PostgreSQL View?

  4. ADO asynchroon gebruiken in Microsoft Access om formulieren te versnellen