Страницы

Поиск по вопросам

четверг, 23 января 2020 г.

Возвращаемая строка содержит нечитаемые символы

#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)

Комментариев нет:

Отправить комментарий