티스토리 뷰

반응형

파이썬으로 프로그래밍을 하다가 SytaxError 메시지를 받게 되었다.

SyntaxError: Non-ASCII character '\xec' in file /Users/user/workspace/test/test.py on line 123, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

'Non-ASCII' 문자가 파이썬 스크립트에 있어서 실행할 수 없다는 의미의 에러메시지가 출력되었다. 소스코드를 보니 한글 주석을 사용했었고, 파이썬이 이 주석에 쓰인 한글 문자의 인코딩을 이해할 수 없어서 발생한 에러 메시지다.

 

구글링을 해보니 해결방법은 간단하다. 다음 코드처럼 스크립트의 초반에 한글을 지원하는 인코딩을 선언해주면 된다.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import sys
...

스크립트 첫 부분에  \# -\*- coding: <encoding-name> -\*- 구문을 추가하고 실행하면 'SyntaxError: Non=ASCII character ...' 에러는 사라진다. 'utf-8' 인코딩을 사용할 수 없는 경우라면, 'euc-kr'도 있고 지원되는 인코딩이 다양하니 찾아서 알맞은 걸 선언해주면 된다.

 

파이썬의 인코딩 설정과 관련된 내용은 PEP-263 문서를 찾아보면 잘 설명되어 있다. (https://www.python.org/dev/peps/pep-0263/)

 

참고로 python 3.X 버전에서는 기본적으로 utf-8 인코딩을 사용해서 문제가 없다. 만약 Python3 를 사용하고 있는데 이 문제를 만났다면, 첫 줄에 나와있는 파이썬 실행환경이 python 2.X 버전을 가리키고 있는게 아닌지 확인해보자. python 2.x 버전은 기본적으로 ASCII 인코딩을 사용하고 있어 별도의 선언이 없다면 이와 같은 문제가 발생한다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함