В Python 3 кодировкой по умолчанию является UTF-8, поэтому вам больше не нужно задавать ее явно. Однако нет способа «глобально» установить кодировку источника по умолчанию, и история показала, что такие глобальные параметры, как правило, являются плохой идеей. (Например, опции -U и -Q для Python и sys.setdefaultencoding () возвращаются, когда они у нас есть.) Вы (напрямую) не контролируете весь источник, который импортируется в вашу программу, потому что он включает в себя стандартный библиотека и любые сторонние модули, которые вы используете прямо или косвенно.
Также обратите внимание, что Unicode не включается, как предполагает заголовок вашего вопроса. Это делает исходную кодировку UTF-8, что означает, что любые не-ASCII-символы в литералах Юникода (например, u'spæm'
) будут интерпретироваться с использованием этой кодировки. Он не сделает внезапно не-юникодные литералы ('spam'
и "spam"
) внезапно юникодными, и не будет ничего делать с не-литералами где-либо в вашем коде.