Как вставить символы cp1252, используя MySQLdb?

Когда я пытался вставить правильные двойные кавычки (”), используя python MySQLdb, он выдает UnicodeEncodeError: 'latin-1' codec can't encode character u'\u201d' in position 0: ordinal not in range(256), Python MySQLdb по умолчанию использует кодек latin-1 и из файла index.xml в /usr/share/mysql/charsets/, он описан как cp1252 западноевропейский. Следовательно, я думаю, что latin1 будет также охватывать символы cp1252. Но latin1 не будет покрывать символы cp1252, если они это сделают, я не получу ошибку.

Правильные двойные кавычки лежат в кодировке cp1252, но не в кодировке ISO 8859-1(или latin1).

Здесь нет cp1252.xml файл в /usr/share/mysql/charsets/, Почему в Python MySQLdb отсутствует кодировка cp1252?

Или ли latin1 такой же как cp1252 как они описали в index.xml,

1 ответ

Вам действительно нужен cp1252, а не utf-8? Я настоятельно рекомендую использовать utf-8.

Что вам нужно это:

  • Проходить charset="utf8mb4" возможность MySQLdb.connect(),
  • Настройте базу данных для использования utf-8.

Вы можете создать базу данных с помощью utf-8 CREATE DATABASE <your db name> DEFAULT CHARACTER SET utf8mb4,

Если у вас уже есть база данных, вы можете изменить набор символов по умолчанию с помощью ALTER DATABASE <your db name> CHARACTER SET utf8mb4, Но вам также нужно изменить весь набор символов для существующих таблиц в базе данных.

Другие вопросы по тегам