diff --git a/Lib/code.py b/Lib/code.py index 6bdc658add0..2e3ee11523b 100644 --- a/Lib/code.py +++ b/Lib/code.py @@ -232,6 +232,10 @@ class InteractiveConsole(InteractiveInterpreter): prompt = sys.ps1 try: line = self.raw_input(prompt) + # Can be None if sys.stdin was redefined + encoding = getattr(sys.stdin, "encoding", None) + if encoding and not isinstance(line, unicode): + line = line.decode(encoding) except EOFError: self.write("\n") break