Python attempts to convert between a byte string and a string in a way that is not perceived. In different transformations, Python attempts to convert directly into byte strings and Unicode strings, where conditions permit.
For example, when you concatenate a byte string and a Unicode byte together. According to the previous introduction , it makes no sense to convert between different types without using encoding.
So Python relies on a "default encoding" that is specified by the encoding sys.setdefaultencoding() .
On most platforms, the default is ASCII encoding. but for all conversions, using this encoding is almost always wrong . This default encoding is used when you do not specify the encoding manually, or if the str() unicode() function takes a string as a parameter, but passes other types of arguments.
Python Coding issues