sql >> Databáze >  >> RDS >> Mysql

Nesprávná hodnota řetězce při pokusu o vložení UTF-8 do MySQL přes JDBC?

utf8 MySQL povoluje pouze znaky Unicode, které mohou být reprezentovány 3 bajty v UTF-8. Zde máte znak, který potřebuje 4 bajty:\xF0\x90\x8D\x83 (U+10343 GOTICKÉ PÍSMENO SAUIL ).

Pokud máte MySQL 5.5 nebo novější, můžete změnit kódování sloupců z utf8 na utf8mb4 . Toto kódování umožňuje ukládání znaků, které zabírají 4 bajty v UTF-8.

Možná budete muset také nastavit vlastnost serveru character_set_server na utf8mb4 v konfiguračním souboru MySQL. Zdá se, že Connector/J má výchozí hodnotu 3 -byte Unicode jinak :

Chcete-li například použít 4bajtové znakové sady UTF-8 s konektorem/J, nakonfigurujte server MySQL pomocí character_set_server=utf8mb4 a ponechte characterEncoding z připojovacího řetězce Connector/J. Connector/J pak automaticky detekuje nastavení UTF-8.



  1. SQL Server TempDB Monitoring pomocí Dynamic Management Views (DMV)

  2. Zkombinujte dotazy vnořené smyčky s výsledkem nadřazeného pole - pg-promise

  3. Převést „čas“ na „smalldatetime“ v SQL Server (příklady T-SQL)

  4. Autonomní transakce v PostgreSQL 9.1