UnicodeError when using print with default encoding set to ASCII

After reading: Immersion in Python: Unicode discussion

I was curious to try typing my name in indic script. I use v2.7.2-

>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> name = u'\u0935\u0948\u092D\u0935'
>>> print name
वैभव

I expected it to print namegive me UnicodeError, since the parameter is defaultencodingset to a value ASCII, so automatic forcing to ASCIIfrom Unicodeshould not work.

What am I missing?

+5
source share
1 answer

print uses sys.stdout.encoding , not sys.getdefaultencoding():

Python , , sys.stdout.encoding . - str.

>>> import sys
>>> print(sys.stdout.encoding)
utf-8
>>> print(sys.getdefaultencoding())
ascii
>>> name = u'\u0935\u0948\u092D\u0935'
>>> print name
वैभव
+9

All Articles