Об этом спрашивали миллион раз, но все, что я пробовал, не сработало, и все из-за немного разных проблем. Я схожу с ума по этому поводу!
У меня есть скрипт Python, который извлекает данные из базы данных MySql - все работает хорошо.
Информация о базе данных:
- Я считаю, что информация в базе данных верна. Я пытаюсь разобрать несколько записей в текстовые документы - вот почему меня не слишком беспокоит точность - даже если удаляются плохие символы - это нормально.
- Кодировка базы данных - UTF-8 и поле, с которым я работаю, это VarChar
- Я использую mysql .connector python модуль для подключения
Однако я получаю ошибки, и я понял, что это потому, что значений с Юникодом, таких как:
Значение этого элемента "DOMAINoardroom".
Я пробовал:
text = order[11].encode().decode("utf-8")
text = order[11].encode("ascii", errors="ignore").decode()
text = str(order[11].encode("utf8", errors="ignore"))
Последний работает, однако выводит его как b'DOMAIN \ x08oardroom ', так как это байты
Я могу получить его в принять текст печатным шрифтом (текст) на экран. Однако, когда я пытаюсь вывести его в текстовый документ (используя модуль docx), он выдает ошибку:
table = document.add_table(rows=total_orders*2, cols=1)
row = table.rows[0].cells
row[0].text = row_text
ValueError: Все строки должны быть XML совместимы: Unicode или ASCII, без NULL-байтов или управляющие символы
Я не особо суетливый по поводу того, как он обрабатывает юникод, например, удаляет его при необходимости, но мне просто нужно его проанализировать без ошибок.
Любые мысли или советы здесь?