Python3 показывает символы Unicode, загруженные из Mysql

0

У меня есть строки (английские слова + иностранное слово + emojis), хранящиеся в БД Mysql.

Данные загружаются

charset = 'latin1'

Затем я предварительно обрабатываю данные с помощью

str = str.encode('latin-1').decode('utf-8')

После этого все выглядит хорошо, за исключением символов Unicode, которые выглядят как \u '******'

Буду признателен за любую помощь.

  • 0
    Можете ли вы привести пример того, как выглядит такая строка и как она должна выглядеть? И, пожалуйста, уточните, как вы «смотрите» на вывод ( print в терминал, запись в файл или что-то еще).
  • 0
    Примечание: выполнение .encode('latin-1').decode('utf-8') - это не то, что вам нужно делать в обычном режиме, но это типичный .encode('latin-1').decode('utf-8') для восстановления после ошибочного кодирования с предыдущего шага.
Показать ещё 2 комментария
Теги:
unicode
utf-8
python-3.6

1 ответ

0

Не используйте кодировку/декодирование, это только добавляет к вашим бедам.

Ваше описание не ясное на пути, предпринятом для Эмодзи. Правильно ли они были закодированы в UTF-8, но затем искажены, когда они хранятся в столбце latin1 в таблице?

Или это было что-то еще?

См. "Лучшая практика" в проблеме с символами UTF-8; я не вижу того, что я хранил

Если ошибочно храниться в столбце latin1, см. "CHARACTER SET latin1", но в нем есть utf8 байт, оставьте байты в одиночку при исправлении кодировки "в http://mysql.rjweb.org/doc.php/charcoll#fixes_for_various_cases

Ещё вопросы

Сообщество Overcoder
Наверх
Меню