Как я могу изменить кодовую страницу Windows в Python?

>>> a = os.popen('chcp 65001')
>>> a.read()
'Active code page: 65001\n'
>>> a.close()
>>> a = os.popen('chcp')
>>> a.read()
'Active code page: 437\n'
>>> a.close()

После того, как я установил кодовую страницу на 65001, при следующем вызове chcp он должен сказать, что активная кодовая страница - 65001, а не 437. Я попробовал это в командной строке Windows, и это сработало. Почему это не работает через код Python?


person russo    schedule 26.08.2010    source источник
comment
Почему вы пытаетесь изменить кодовую страницу в Python вместо использования строковых кодировок ?   -  person Seth    schedule 26.08.2010


Ответы (1)


Причина в том, что каждый раз, когда вы вызываете os.popen, вы запускаете новый процесс. Попробуйте открыть два cmd.exe сеанса и запустить chcp 65001 в одном и chcp в другом - это то, что вы делаете здесь в своем коде Python.

Одно замечание: все вызовы [popen*()][1] устарели, начиная с версии Python 2.6. Новый модуль для использования - это модуль subprocess.

person Sean Vieira    schedule 26.08.2010