Home > Backend Development > Python Tutorial > Detailed explanation of the use of setdefaultencoding function

Detailed explanation of the use of setdefaultencoding function

高洛峰
Release: 2016-10-17 16:14:41
Original
1378 people have browsed it

sys.getdefaultencoding() sets the default string encoding format. If you do not specify the encoding method when encoding and decoding in python, then python will use defaultencoding.

The default encoding of python2.x is ascii, which is why most python encoding errors: "UnicodeDecodeError: 'ascii' codec can't decode byte...".

#coding:utf-8, which has a similar function, is used to define the encoding of the source code. If it is not defined, the source code cannot contain Chinese strings.

Note: setdefaultencoding will be abandoned after python2.7 , so it cannot be used in python3. Reload the sys module first, because the import statement here is not actually the first import statement of sys, which means that this may actually be the second or third import of the sys module. This is just a reference to sys and can only be reloaded. to reload.


So why does it need to be reloaded, but the function cannot be called by directly referencing it? Because the setdefaultencoding function is deleted after being called by the system, it is no longer there when it is referenced through import. Therefore, the sys module must be reloaded once so that setdefaultencoding will be available and the current character encoding of the interpreter can be modified in the code.

In the Lib folder of the python installation directory, there is a file called site.py, in which you can find main() --> setencoding()-->sys.setdefaultencoding(encoding), because this site .py will be automatically loaded every time the python interpreter is started, so the main function will be executed every time, and the setdefaultencoding function will be deleted as soon as it comes out.

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template