sys.getdefaultencoding()은 string의 기본 인코딩 형식을 설정합니다. python에서 인코딩 및 디코딩할 때 인코딩 방법을 지정하지 않으면 Python에서는 defaultencoding을 사용합니다.
python2.x의 기본 인코딩은 ascii입니다. 이것이 대부분의 Python 인코딩 오류가 발생하는 이유입니다: "UnicodeDecodeError: 'ascii' 코덱이 바이트를 디코딩할 수 없습니다...".
#coding:utf-8은 유사한 기능을 가지고 있어 소스코드의 인코딩을 정의하는데 사용됩니다. 정의하지 않으면 소스코드에 중국어 문자열이 포함될 수 없습니다. .
참고: setdefaultencoding은 python2.7 이후에는 더 이상 사용되지 않으므로 python3.x에서는 사용할 수 없습니다.
코드 예 :
#!/usr/bin/env python #encoding: utf-8 import sys #引用sys模块进来,并不是进行sys的第一次加载 reload(sys) #重新加载sys sys.setdefaultencoding('utf8') ##调用setdefaultencoding函数
는 올바르게 실행될 수 있지만 다음 코드는 잘못됩니다
#!/usr/bin/env python #encoding: utf-8 import sys sys.setdefaultencoding('utf8')
여기서 import 문은 실제로 처음이 아니기 때문에 setdefaultencoding을 호출할 때 먼저 sys 모듈을 다시 로드해야 합니다. sys import 문은 이것이 실제로 sys 모듈의 두 번째 또는 세 번째 가져오기일 수 있음을 의미하며 이는 단지 sys에 대한 참조일 뿐이며 다시 로드를 통해서만 다시 로드할 수 있습니다.
그러면 왜 다시 로드해야 하는데 직접 인용하면 함수를 호출할 수 없는 걸까요? setdefaultencoding 함수는 시스템에서 호출된 후 삭제되므로 가져오기를 통해 참조할 때 더 이상 존재하지 않습니다. 따라서 setdefaultencoding을 사용할 수 있고 인터프리터의 현재 문자 인코딩을 사용할 수 있도록 sys 모듈을 한 번 다시 로드해야 합니다. 코드에서 수정되었습니다.
python 설치 디렉토리의 Lib 폴더에 site.py라는 파일이 있는데, main() --> setencoding()-->sys.setdefaultencoding(encoding), 왜냐하면 이 site.py는 Python 인터프리터를 시작할 때마다 자동으로 로드되므로 기본 기능은 실행 후 setdefaultencoding 함수가 나오자마자 삭제되었습니다.
위 내용은 setdefaultencoding 기능을 사용하는 방법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!