Подтвердить что ты не робот

Загрузка закодированного текста utf-8 в таблицу MySQL

У меня есть большой файл CSV, который я собираюсь загрузить в таблицу MySQL. Однако эти данные кодируются в формате utf-8, потому что они включают некоторые неанглийские символы. Я уже установил набор символов соответствующего столбца в таблице в utf-8. Но когда я загружаю свой файл. неанглийские символы превращаются в странные символы (когда я делаю выбор в строках таблицы). Нужно ли мне кодировать мои данные, прежде чем загружать их в таблицу? если да, то как я могу это сделать. Я использую Python для загрузки данных и использования команды LOAD DATA LOCAL INFILE. спасибо

4b9b3361

Ответ 1

как сказано в http://dev.mysql.com/doc/refman/5.1/en/load-data.html, вы можете указать кодировку, используемую вашим CSV файлом, с дополнительным параметром "CHARACTER SET" для LOAD DATA LOCAL INFILE

Ответ 2

Try

LOAD DATA INFILE 'file'
IGNORE INTO TABLE table
CHARACTER SET UTF8
FIELDS TERMINATED BY ';'
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'

Ответ 3

Вам следует отправить

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

при выполнении MySQLdb.connect() например.

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, извините, я вижу, вы добавили, что используете "LOAD DATA LOCAL INFILE" - это было непонятно из вашего первоначального вопроса:)

Ответ 4

Не нужно кодировать ваши символы в файле, но вам нужно убедиться, что ваш файл кодируется в UTF-8 перед загрузкой этого файла в базу данных.

Ответ 5

Попробуйте что-то вроде

ЗАГРУЗИТЬ ДАННЫЕ ЛОКАЛЬНЫЙ ИНФИЛЬ "file" В TABLE message_history CHARACTER SET UTF8 КОЛОННЫ, ПРЕКРАЩАЕМЫЕ '|' ФАКУЛЬТАТИВНО ЗАКЛЮЧЕНО '' 'ESCAPED BY' '';

Оригинальная структура,

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