Как вставить символы 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
, Но вам также нужно изменить весь набор символов для существующих таблиц в базе данных.