#python #кодировка
Использую psycopg2 для работы с Postgress БД. Получаю вот такое вот строковое значение при запросе к БД: " insider’s guide to a woman’s ". Должно быть insider's guide to a woman's. Помогите найти решение
Ответы
Ответ 1
insider’s guide это так называемые кракозябы (даже президенты от этого не застрахованы), которые получаются когда текст, закодированный в одной кодировке показан в другой несовместимой кодировке: >>> print(u"insider’s guide to a woman’".encode('cp1251').decode('utf-8')) insider’s guide to a woman’ В вашем случае utf-8 текст показывался, используя cp1251 кодировку. Чтобы уменьшить вероятность подобных ошибок, храните текст как Юникод, а не байты: преобразуйте на входе байты в Юникод, используйте Юникод внутри программы, кодируйте в байты на выходе (если необходимо) ☯: unicode_text = bytestring.decode(character_encoding) bytestring = unicode_text.encode(character_encoding)
Комментариев нет:
Отправить комментарий