Неверная кодировка при чтении файла

Что делать, если при чтении файла (текста в формате .txt) и выводе с помощью функции print(), кириллица превращается в непонятные символы?

Пример

Исходный код:

file = open('text.txt','r')
text = file.read()
print(text)

Ответы (3 шт):

Автор решения: GrAnd

Когда открываете файл - делайте это с правильной кодировкой. Если у вас входной файл в кодировке utf8, то вот так:

file = open('text.txt','r', encoding="utf-8")
→ Ссылка
Автор решения: CrazyElf

Если в "Блокноте" кодировка показывается правильная, значит у файла родная кодировка Windows - cp1251, эту кодировку и нужно указать при открытии файла:

with open('text.txt', 'r', encoding='cp1251') as file:
    text = file.read()
    print(text)
→ Ссылка
Автор решения: MaxU

Из официальной документации по функции open():

In text mode, if encoding is not specified the encoding used is platform dependent: locale.getpreferredencoding(False) is called to get the current locale encoding.

Т.е. кодировка по умолчанию может отличаться от системы к системе.

Соответственно если файл сохранен в кодировке отличающейся от той, которую возвращает функция locale.getpreferredencoding(False), тогда лучше явно задать правильную кодировку при открытии файла.

→ Ссылка