Monday, December 11, 2006
Python/파이썬] 한글 인코딩, 소스의 한글 확장 완성형 글자 표현; Korean Hangul Encoding
파이썬 소스에 한글 문자열이 있으면 다음과 같은 "SyntaxError: Non-ASCII character..."라는 에러가 납니다:
File "D:\Z\0.py", line 4
SyntaxError: Non-ASCII character '\x8c' in file D:\Z\0.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
파이썬은 영문 인코딩이 기본이기에, 한글을 표현하기 위해서는 한글 인코딩을 지정해 주어야 합니다.
위와 같은 행을, 파이썬 소스의 반드시 "1번째 줄" 또는 "2번째 줄"에 위치시켜야 합니다. 3번째 줄부터는 안됩니다.
또한
coding:
이곳의 콜론(:)기호를
coding :
이렇게 띄어쓰면 안됩니다.
파일명: 0.py
# -*- coding: cp949 -*-
또는
# -*- coding: ms949 -*-
라고 해도 됩니다.
그러나
# -*- coding: euc-kr -*-
이라고 하면, "똠방각하"의 "똠"자 등이 표현되지 않습니다.
"똠"자를 처리하지 못하고 이런 에러가 납니다: SyntaxError: 'euc_kr' codec can't decode bytes in position 20-21: illegal multibyte sequence
즉 확장완성형이 아닌 그냥 완성형으로 지정됩니다.
File "D:\Z\0.py", line 4
SyntaxError: Non-ASCII character '\x8c' in file D:\Z\0.py on line 4, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
파이썬은 영문 인코딩이 기본이기에, 한글을 표현하기 위해서는 한글 인코딩을 지정해 주어야 합니다.
# -*- coding: 949 -*-
위와 같은 행을, 파이썬 소스의 반드시 "1번째 줄" 또는 "2번째 줄"에 위치시켜야 합니다. 3번째 줄부터는 안됩니다.
또한
coding:
이곳의 콜론(:)기호를
coding :
이렇게 띄어쓰면 안됩니다.
파이썬 소스 한글 인코딩 지정 예제 소스
파일명: 0.py
#!/usr/bin/python
# -*- coding: 949 -*-
print "Hello World! 똠방각하"
# 이 줄은 주석문(코멘트; Comment)입니다.
# -*- coding: 949 -*-
print "Hello World! 똠방각하"
# 이 줄은 주석문(코멘트; Comment)입니다.
# -*- coding: cp949 -*-
또는
# -*- coding: ms949 -*-
라고 해도 됩니다.
그러나
# -*- coding: euc-kr -*-
이라고 하면, "똠방각하"의 "똠"자 등이 표현되지 않습니다.
"똠"자를 처리하지 못하고 이런 에러가 납니다: SyntaxError: 'euc_kr' codec can't decode bytes in position 20-21: illegal multibyte sequence
즉 확장완성형이 아닌 그냥 완성형으로 지정됩니다.
tag: python
Python | 파이썬
<< Home