Come faccio a codificare qualcosa in ut8mb4 in Python?Come codificare (utf8mb4) in Python
Ho due serie di dati: i dati che sto migrando al mio nuovo database MySQL rispetto a Parse, e dati in corso (che parla solo al mio nuovo database). Il mio database è utf8mb4 per memorizzare emoji e lettere accentate.
La prima serie di dati mostra solo fino correttamente (quando emoji e gli accenti sono coinvolti), quando ho nel mio script python:
MySQLdb.escape_string(unicode(xstr(data.get('message'))).encode('utf-8'))
e durante la lettura dal database MySQL in PHP:
$row["message"] = utf8_encode($row["message"]);
Il secondo set di dati viene visualizzato correttamente (quando sono presenti emoji e accenti) quando NON includo la parte utf8_encode($row["message"])
. Sto cercando di riconciliarli in modo che entrambi i set di dati vengano restituiti correttamente alla mia app iOS. Per favore aiuto!
Presumo che stai parlando di MySQL ? Se è così, l'utf8 di Python dovrebbe essere identico a utf8mb4 di MySQL. Puoi essere più specifico su cosa stai facendo e i risultati che vedi? –
Sembra utf8mb4 è qualcosa che MySQL ha inventato perché la loro implementazione ut8 funziona solo con i caratteri BMP. Questo non è il caso del normale utf8, che può codificare qualsiasi carattere unicode. Questa è la codifica che Python sta usando. Forse MySQL offre una serie di funzioni per lavorare con la loro codifica personalizzata? – Cameron
@MarkRansom hanno aggiunto altro alla domanda per essere più specifici – user3781236