classification
Title: Py3.1: Fatal Python Error: Py_Initialize...unknown encoding: chcp 65001.
Type: crash Stage: resolved
Components: Interpreter Core, IO, Unicode, Windows Versions: Python 3.1
process
Status: closed Resolution: duplicate
Dependencies: Superseder: Fatal error on startup with invalid PYTHONIOENCODING
View: 6501
Assigned To: Nosy List: flox, lieryan, vstinner
Priority: normal Keywords:

Created on 2009-12-05 10:40 by lieryan, last changed 2011-10-26 23:49 by vstinner. This issue is now closed.

Messages (4)
msg95987 - (view) Author: Lie Ryan (lieryan) Date: 2009-12-05 10:40
maybe related to #6501

Vista 32-bit SP1, Python 3.1:
"""
Microsoft Windows [Version 6.0.6000]
Copyright (c) 2006 Microsoft Corporation.  All rights reserved.
D:\>chcp 65001
Active code page: 65001

D:\>python -c 'print("")'
Fatal Python error: Py_Initialize: can't initialize sys standard streams
LookupError: unknown encoding: cp65001

This application has requested the Runtime to terminate it in an unusual
way.
Please contact the application's support team for more information.
D:\>python
Python 3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
"""

Expected, either:
1. print nothing (""), or
2. python exception about unknown encoding, or
3. python exception about cannot encode to the encoding

cp65001 is supposed to be an alias for utf-8. Because of the error,
there is AFAICT no way to set the command prompt to accept utf-8 output
even for pipe redirection.

A workaround is to use sys.stdout.buffer.write() to write raw byte
strings, encoding manually. But this takes us back to python 2.
msg95989 - (view) Author: Florent Xicluna (flox) * (Python committer) Date: 2009-12-05 11:24
there's a patch proposed to add cp65001 alias: issue6058
msg96674 - (view) Author: Florent Xicluna (flox) * (Python committer) Date: 2009-12-20 11:47
Thank you for your report.
See #6501 about the Fatal Error
See #6058 for the feature request (cp65001 on windows).
msg146470 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-10-26 23:49
I added a cp65001 codec to Python 3.3: see issue #13216. So Python will not "crash" anymore if the console code page is set to cp65001.
History
Date User Action Args
2011-10-26 23:49:44vstinnersetnosy: + vstinner
messages: + msg146470
2010-01-09 09:51:48georg.brandlsetstatus: open -> closed
2009-12-20 11:47:47floxsetresolution: duplicate
superseder: Fatal error on startup with invalid PYTHONIOENCODING
messages: + msg96674
stage: resolved
2009-12-05 11:24:47floxsetnosy: + flox
messages: + msg95989
2009-12-05 10:40:56lieryancreate