Sto cercando di inserire del testo in un campo nel mio database e ho un problema con le emoji. Quello che succede è che se non metto l'url della mia connessione su jdbc:mysql://localhost:3306/MyDatabase?characterEncoding=UTF-8
allora il server memorizzerà gli emojis bene ma memorizzerà anche caratteri non latini come punti interrogativi.Valore stringa errato senza "? CharacterEncoding = UTF-8"
Ora, se ho impostato il mio URL di collegamento del genere, allora il server non sarà come le emoji e di uscita la volontà di errore:
Incorrect string value: '\xF0\x9F\x98\xB1\xF0\x9F...' for column 'fullTweet' at row 1
ho fatto tutti i passi necessari per la compatibilità utf8 sul mio server locale :
- ho aggiunto la linea
character-set-server=utf8mb4
-my.ini
- la query
show variables like 'character_set_server'
rendimentiutf8mb4
- Creo il mio database con la query
CREATE DATABASE twitter DEFAULT CHARACTER SET utf8mb4
- e di default tutte le mie tabelle e campi delle mie tabelle utilizza
utf8mb4_general_ci
(come posso vedere inphpmyadmin
)
Che cosa manca? Sono sicuro di aver fatto tutti i passi necessari e ancora non riesco a farlo funzionare, o memorizzerà solo caratteri latini o non memorizzerà emoji.
Ulteriori informazioni da una domanda precedente di mine:
posso inserire manualmente l'emoji nel database e mostrano esattamente come mostrano nel debugger (come caselle). Ho funzionare questa domanda:
INSERT INTO `tweets`(`id`, `createdAt`, `screenName`, `fullTweet`, `editedTweet`) VALUES (450,"1994-12-19","john",_utf8mb4 x'F09F98B1',_utf8mb4 x'F09F98B1')
e questo è ciò che la riga della tabella si presenta come:
Non riesco a trovare alcuna di tali funzioni, esse non vengono riconosciute. –