-*-코딩 : utf-8-*-


135

파이썬은 다음을 파일 인코딩을 정의하는 명령으로 인식합니다.

# -*- coding: utf-8 -*-

나는 이런 종류의 지시를 확실히 보았다 ( -*- var: value -*-). 그거 어디서 났어? 전체 사양은 무엇입니까, 예를 들어 값에 공백, 특수 기호, 줄 바꿈 등이 포함될 수 -*-있습니까?

내 프로그램은 일반 텍스트 파일을 작성하며이 형식을 사용하여 일부 메타 데이터를 포함하고 싶습니다.


3
이것은 기억하기 쉽고 편집자 PyCharm에서 작동합니다. # coding: utf-8
crizCraig

2
사용 # coding: utf8도 외부 PyCharm의 파이썬 2.7 상자 밖으로 작품. (SublimeText를 사용합니다).
Basj


1
@Cbhihe이 질문은 파이썬에 관한 것이 아니라 명령어의 기능이나 작동 방식이 아닙니다. 그것은 어떤 사전 파이썬 소프트웨어가 그것을 발명했는지, 그리고 파일 인코딩보다 더 많은 것이 있는지 묻습니다.
hamstergene

답변:


89

파이썬 파일의 인코딩을 지정하는이 방법은 PEP 0263 – 파이썬 소스 코드 인코딩 정의 에서 온 것 입니다.

GNU Emacs ( Python 언어 참조, 2.1.4 인코딩 선언 참조 )에서도 인식 되지만 해당 구문을 사용하는 첫 번째 프로그램인지는 알 수 없습니다.


4
내가 이맥스 설명서에서 결론을 내릴 수있는 건, 값은 LISP 표현, 특히, 이중 인용 문자열이 될 수 있습니다
hamstergene

pep 링크 주셔서 감사합니다. 이전에는 지시문이 텍스트 편집기에서만 사용되었다는 인상을 받았습니다. 지금까지는 파이썬 인터프리터가 파일의 처음 두 줄에 주석이 있으면 실제로 주석을 파싱했다는 것을 알지 못했습니다.
우메보시



4

PyCharm에서는 생략하겠습니다. 인코딩이 하드 코딩되었다는 경고와 함께 하단의 UTF-8 표시기가 꺼집니다. 위에서 언급 한 PyCharm 의견이 필요하다고 생각하지 마십시오.


실제로, 내가 같은 줄을 넣으면 test1 = 'äöü'그러한 헤더를 파일에 추가하는 것을 암시 할 것입니다. (pycharm 2019.1)
Cutton Eye

@Cutton Eye는 Python 2 또는 3입니까?
보리스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.