[python] Python 3에서 인코딩 선언을 사용해야합니까?

Python 3은 기본적으로 소스 코드 파일에 UTF-8 인코딩을 사용합니다. 모든 소스 파일의 시작 부분에 인코딩 선언을 사용해야합니까? 처럼# -*- coding: utf-8 -*-



답변

기본값 UTF-8 에서 벗어나거나 해당 정보를 사용하기 위해 다른 도구 (예 : IDE 또는 텍스트 편집기)에 의존하는 경우에만 해당 선언을 사용해야합니다.

즉, 파이썬에 관한 한 한 다른 인코딩을 사용하려는 경우에만 해당 선언을 사용해야합니다.

편집기와 같은 다른 도구는 유사한 구문을 지원할 수 있습니다. 이것이 PEP 263 사양 이 구문에서 상당한 유연성을 허용 하는 이유입니다 (주석 coding이어야 하고 텍스트가 있어야하며 그 뒤에 a :또는 =문자 및 선택적 공백이 와야합니다. 다음에 인식 된 코덱).

파이썬 이 소스 코드를 읽는 방법에만 적용됩니다 . 해당 코드 실행에는 적용되지 않으므로 인쇄, 파일 열기 또는 기타 I / O 작업이 바이트와 유니 코드간에 변환되는 방식에는 적용되지 않습니다. Python, Unicode 및 인코딩에 대한 자세한 내용은 Python Unicode HOWTO 또는 Ned Batchelder 의 매우 철저한 실용적 유니 코드 강연 을 읽어 보시기 바랍니다 .


답변

아니요, 다음과 같은 경우 :

  • 전체 프로젝트 UTF-8는 기본값 인 만 사용합니다 .
  • 그리고 IDE 도구가 각 파일에서 인코딩 선언을 필요로하지 않는다는 것을 확신합니다.

예, 만약

  • 프로젝트는 다른 인코딩에 의존합니다.
  • 또는 많은 인코딩에 의존합니다.

다중 인코딩 프로젝트의 경우 :

일부 파일이으로 인코딩 된 경우에서 인코딩 된 경우 non-utf-8에도 UTF-8인코딩 선언도 추가해야합니다.Explicit is better than implicit.

참고:

  • PyCharm에는 다음과 같은 선언이 필요하지 않습니다.

pycharm의 특정 파일에 대한 인코딩 구성

  • vim에는 해당 선언이 필요하지 않지만 다음과 같습니다.
# vim: set fileencoding=<encoding name> :

답변