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

MySQL genera un errore di valore stringa errato

È il personaggio alla fine del tweet che causa il problema.

Sembra un personaggio "emoji", noto anche come faccina sorridente giapponese, ma non viene visualizzato né in Chrome né in Safari.

Ci sono problemi noti che memorizzano caratteri utf da 4 byte in alcune versioni di MySQL. Apparentemente devi usare utf8mb4 per rappresentare caratteri UTF a 4 byte, poiché il normale set di caratteri utf8 può rappresentare solo caratteri fino a 3 byte di lunghezza e quindi non può memorizzare caratteri che sono al di fuori di Aereo multilingue di base

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

Il che è una novità per me in quanto fondamentalmente significa che il tipo di dati utf8 in MySQL non è proprio utf8 corretto.

Ci sono suggerimenti su come gestirlo quiCome inserire il carattere utf-8 mb4 (emoji in ios5) in mysql? tra cui:

"Assicurati inoltre che il livello dell'app imposti il ​​set di caratteri delle connessioni al database su utf8mb4. Ricontrolla che ciò stia effettivamente accadendo:se stai eseguendo una versione precedente della libreria client mysql del framework scelto, potrebbe non essere stata compilata con il supporto utf8mb4 e non imposterà correttamente il set di caratteri. In caso contrario, potrebbe essere necessario aggiornarlo o compilarlo da solo"

Se stai usando Connector/J devi impostare character_set_server=utf8mb4 nella configurazione della connessione.

Tutti i tuoi set di caratteri dovrebbero essere utf8mb4, che potresti aver provato ma non sono attualmente impostati.