[Risolto]Python UnicodeEncodeError: 'latin-1' codec can't en

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
TommyB1992
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 852
Iscrizione: domenica 7 luglio 2013, 15:55
Desktop: GNU/Linux
Distribuzione: Ubuntu 22.04.2 LTS
Sesso: Maschile

[Risolto]Python UnicodeEncodeError: 'latin-1' codec can't en

Messaggio da TommyB1992 »

Ho questo errore, il database è in:
CREATE DATABASE `dbname` CHARSET LATIN1 COLLATE latin1_general_ci;

però nella tabella ho questa riga per convertire il dato in utf8
`field` VARCHAR(50) CHARACTER SET utf8 NOT NULL DEFAULT ''

---------

Ho provato a convertire il db in utf8 ma nada, evidentemente il problema sta nel "come" leggo il dato e poi cerco di utilizzarlo

--------

Ho "risolto" così:

Codice: Seleziona tutto

def removeLatinChars(string, err):
    r = re.search("encode character '(.*)' in", str(err))
    return eval("string.replace(u'{}', '#+')".format(r.group(1)))

try:
    ...
except UnicodeEncodeError as e:
    removeLatinChars(string, e)
Che tutto sommato può andare, perchè non mi serve quel/quei caratteri per ciò che devo fare, ma mi piacerebbe conoscere una soluzione effettiva...
Ultima modifica di TommyB1992 il mercoledì 20 giugno 2018, 20:05, modificato 1 volta in totale.
Avatar utente
Claudio_F
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1463
Iscrizione: lunedì 28 maggio 2012, 18:49
Desktop: Mate/Gnome
Distribuzione: Ubu22.04

Re: Python UnicodeEncodeError: 'latin-1' codec can't encode

Messaggio da Claudio_F »

Se non ho capito male, tra i tuoi dati ci sono dei caratteri che non esistono nel Latin1, perciò è del tutto impossibile codificarli con quell'encoding.
TommyB1992
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 852
Iscrizione: domenica 7 luglio 2013, 15:55
Desktop: GNU/Linux
Distribuzione: Ubuntu 22.04.2 LTS
Sesso: Maschile

Re: Python UnicodeEncodeError: 'latin-1' codec can't encode

Messaggio da TommyB1992 »

boh, non capisco da dove tiri fuori *i caratteri che non sono presenti in latin, visto che apro il file anche con encode('utf8') e che li salvo in db con quel formato
TommyB1992
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 852
Iscrizione: domenica 7 luglio 2013, 15:55
Desktop: GNU/Linux
Distribuzione: Ubuntu 22.04.2 LTS
Sesso: Maschile

Re: Python UnicodeEncodeError: 'latin-1' codec can't encode

Messaggio da TommyB1992 »

Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 13 ospiti