2011-02-10 13 views
18

Tengo un gran archivo CSV que voy a cargar en una tabla MySQL. Sin embargo, estos datos están codificados en formato utf-8, ya que incluyen algunos caracteres no ingleses. Ya he configurado el conjunto de caracteres de la columna correspondiente en la tabla para utf-8. Pero cuando cargo mi archivo. los caracteres no ingleses se convierten en personajes extraños (cuando selecciono las filas de mi mesa). ¿Debo codificar mis datos antes de cargarlos en la tabla? Si es así, ¿cómo puedo hacer esto? Estoy usando Python para cargar los datos y usar el comando LOAD DATA LOCAL INFILE. graciasCargando texto codificado en utf-8 en la tabla MySQL

Respuesta

2

debe enviar

init_command = 'SET NAMES UTF8' 
use_unicode = True 
charset = 'utf8' 

cuando haciendo MySQLdb.connect() por ej.

dbconfig = {} 
dbconfig['host']   = 'localhost' 
dbconfig['user']   = '' 
dbconfig['passwd']   = '' 
dbconfig['db']    = '' 
dbconfig['init_command'] = 'SET NAMES UTF8' 
dbconfig['use_unicode']  = True 
dbconfig['charset']   = 'utf8' 

conn = MySQLdb.connect(**dbconfig) 

edición: Ah, lo siento, veo que ha añadido que está utilizando "LOAD DATA LOCAL INFILE" - esto no era claro por su pregunta inicial :)

62

Trate

+5

debe ser la respuesta aceptada – memical

+0

agregando "JUEGO DE CARACTERES UTF8" fue la clave! – nemnesic

+0

Oh mi, me tomó tanto tiempo. Intenté todo, simplemente siguió convirtiendo utf8 en latino e importándolo a una tabla utf 8. La opción de codificación funcionó de maravillas. – John

2

No es necesario codificar sus caracteres en el archivo, pero debe asegurarse de que su archivo esté codificando en UTF-8 antes de cargar este archivo en la base de datos.

Cuestiones relacionadas