Ho bisogno di convertire (in Python) un carattere di 4 byte in un altro carattere. Questo è per inserirlo nel mio database mysql utf-8 senza ottenere un errore come: "Valore stringa errato: '\ xF0 \ x9F \ x94 \ x8E' per colonna 'riga' nella riga 1"Python, converte il carattere di 4 byte per evitare l'errore MySQL "Valore stringa errato:"
Warning raised by inserting 4-byte unicode to mysql mostra a fare in questo modo:
>>> import re
>>> highpoints = re.compile(u'[\U00010000-\U0010ffff]')
>>> example = u'Some example text with a sleepy face: \U0001f62a'
>>> highpoints.sub(u'', example)
u'Some example text with a sleepy face: '
Tuttavia, ottengo lo stesso errore come l'utente nel commento, "... intervallo di caratteri male .." questo è apparentemente perché il mio Python è un UCS-2 (non UCS -4) costruire. Ma poi non sono chiaro su cosa fare invece?
E 'ancora un problema se si utilizza il set di caratteri [utf8mb4] (http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html) in MySQL? –
Non sicuro. Sfortunatamente non riesco a modificare il set di caratteri del database. – user984003