O caractere U + 201C Aspas duplas à esquerda não está presente na codificação Latin-1 (ISO-8859-1).
Ele está presente na página de código 1252 (Europa Ocidental). Esta é uma codificação específica do Windows baseada em ISO-8859-1, mas que coloca caracteres extras no intervalo 0x80-0x9F. A página de código 1252 é freqüentemente confundida com ISO-8859-1, e é um comportamento irritante, mas agora padrão, do navegador da web, se você servir suas páginas como ISO-8859-1, o navegador as tratará como cp1252. No entanto, eles realmente são duas codificações distintas:
>>> u'He said \u201CHello\u201D'.encode('iso-8859-1')
UnicodeEncodeError
>>> u'He said \u201CHello\u201D'.encode('cp1252')
'He said \x93Hello\x94'
Se você estiver usando seu banco de dados apenas como um armazenamento de bytes, você pode usar cp1252 para codificar “
e outros caracteres presentes na página de código do Windows Western. Mas ainda outros caracteres Unicode que não estão presentes em cp1252 causarão erros.
Você pode usar encode(..., 'ignore')
para suprimir os erros livrando-se dos caracteres, mas realmente neste século você deve usar UTF-8 em seu banco de dados e em suas páginas. Esta codificação permite que qualquer caractere seja usado. Idealmente, você também deve informar ao MySQL que está usando strings UTF-8 (definindo a conexão do banco de dados e o agrupamento em colunas de string), para que possa obter comparação e classificação sem distinção entre maiúsculas e minúsculas.