Loading utf-8 encoded text into MySQL table

后端 未结 5 620
小蘑菇
小蘑菇 2020-11-29 06:37

I have a large CSV file that I am going to load it into a MySQL table. However, these data are encoded into utf-8 format, because they include some non-english characters. I

相关标签:
5条回答
  • 2020-11-29 06:54

    Try something like,

    LOAD DATA LOCAL INFILE "file" INTO TABLE message_history CHARACTER SET UTF8 COLUMNS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"';

    Original Structure,

    https://dev.mysql.com/doc/refman/8.0/en/load-data.html

    0 讨论(0)
  • 2020-11-29 06:55

    as said in http://dev.mysql.com/doc/refman/5.1/en/load-data.html, you can specify the charset used by your CSV file with the "CHARACTER SET" optional parameter of LOAD DATA LOCAL INFILE

    0 讨论(0)
  • 2020-11-29 06:57

    Try

    LOAD DATA INFILE 'file'
    IGNORE INTO TABLE table
    CHARACTER SET UTF8
    FIELDS TERMINATED BY ';'
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    
    0 讨论(0)
  • 2020-11-29 06:59

    Do not need encode your characters in the file, but you need to make sure that your file is encoding at UTF-8 before load this file to database.

    0 讨论(0)
  • 2020-11-29 07:07

    You should send

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

    when doing MySQLdb.connect() e.g.

    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)
    

    edit: ah, sorry, I see you've added that you're using "LOAD DATA LOCAL INFILE" -- this wasn't clear from your initial question :)

    0 讨论(0)
提交回复
热议问题