Предупреждение: (1366, «Неверное строковое значение: ‘\xB4\xEB\xC7\xD1\xB9\xCE…’ для столбца ‘VARIABLE_VALUE’ в строке 1») результат = self._query(запрос)

#mysql #string #utf-8

#mysql #строка #utf-8

Вопрос:

Эта ошибка возникает всякий раз, когда я пытаюсь вставить приведенную ниже таблицу в схему mysql.

введите описание изображения здесь

Я использовал код, подобный этому

     self.collect.allday_list.to_sql(name=code_name, con=self.collect.engine_allday, if_exists='append')
  

и self.collect.egine_allday является

     self.engine_allday = create_engine("mysql mysqldb://"   info.db_id   ":"   info.db_passwd   "@"
                                    info.db_ip   ":"   info.db_port   "/allday_list", encoding = 'utf-8')
  

и предупреждение: (1366, «Неверное строковое значение: ‘xB4xEBxC7xD1xB9xCE…’ для столбца ‘VARIABLE_VALUE’ в строке 1») результат = self._query(запрос)

в нем нет никаких эмодзи или специальной буквы, но произошла ошибка как мне включить эту таблицу в схему в mysql?

Ответ №1:

Где-то в данных, которые вы пытаетесь вставить, есть текст, закодированный в euc-kr :

 >>> bytes.decode(b'xB4xEBxC7xD1xB9xCE', encoding='euc-kr')
'대한민'
  

Эти байты не представляют допустимый текст в utf-8. Вы можете попробовать изменить кодировку подключения к базе данных на euc-kr или преобразовать данные из euc-kr в utf-8 при их чтении.

С другой стороны, на скриншоте данных есть только цифры, никакого текста. Это говорит о том, что вы, возможно, пытаетесь загрузить неправильный файл или что, возможно, существует часть файла, которую вы не хотели вставлять в базу данных.

Комментарии:

1. ( CHARACTER SET Имя MySQL является euckr .)