아니요, 상단의 코덱 은 파이썬에 소스 코드를 해석하는 방법을 알려주고 해당 코덱을 사용하여 유니 코드 리터럴을 해석합니다. 이 아닌 경우 리터럴 바이트 체크를 유니 코드 값으로 변환합니다. PEP 263 상태로 :
는
이 PEP는 파이썬 소스 파일의 인코딩을 선언하는 구문을 소개 제안한다. 인코딩 정보는 파이썬 파서가 주어진 인코딩을 사용하여 파일을 해석하는 데 사용됩니다. 대부분 특히 은 소스 코드에서 유니 코드 리터럴의 해석을 향상시키고 유니 코드 리터럴 을 작성할 수 있습니다. UTF-8은 유니 코드 인식 편집기에서 직접 사용할 수 있습니다.
강조 광산. 파이썬은 당신이 그것을 예상대로 행동하면
이
$ cat /tmp/test.py
example = '☃'
$ python2.7 /tmp/test.py
File "/tmp/test.py", line 1
SyntaxError: Non-ASCII character '\xe2' in file /tmp/test.py on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
, 당신은 비 포함 된 문자 bytestring 값으로 할 수 없을 것입니다 : 코덱 선언없이
는, 파이썬은 어떻게 비 ASCII 문자를 해석하는 방법을 모르고있다 -ASCII 바이트 값.
터미널이 UTF-8 값을 표시하도록 구성된 경우 UTF-8로 인코딩 된 바이트 문자열을 인쇄하는 것은 '정확함'으로 표시되지만 인코딩이 일치하는 경우에만 가능합니다. 파이썬 3에서
unicode_snowman = '\xe2\x98\x83'.decode('utf8')
unicode_snowman = unichr(0x2603)
:
유니 코드 값을 얻을 수있는 정확한 방법은 유니 리터럴을 사용하거나 유니 코드 (바이트 스트링에서 복호화 유니 코드 문자를 정수 코드 포인트 변환 등)를 제조하는 것이다 코덱은 변수 이름이 해석되는 방법에도 적용됩니다. 이름에서 ASCII 범위 외의 문자와 숫자를 사용할 수 있기 때문입니다. 파이썬 3의 기본 코덱은 UTF-8이며, 파이썬 2에서는 ASCII와 반대입니다.
대신 파이썬 3을 사용하고 * all * 문자열은 유니 코드입니다. –
@MarkRansom 호환성 문제로 인해 Python 버전을 바꿀 수 없습니다 – Caumons
''unicode literal ''을 사용하는 것에 대해 '정중'하지 않습니다. * 왜 * 비현실적이라고 생각합니까? –