[Python] # -*- coding: utf-8 -*-를 쓰는 이유


[Python] # -*- coding: utf-8 -*-를 쓰는 이유


  • 파이썬2의 기본 인코딩은 ascii이다
    • 파이썬2는 한글을 쓸때 골치아프다. 
    • 파이썬 스크립트에서 한글을 사용하게 될 때 파이썬은 ascii 인코딩일 것으로 예상하고 해석하려고 하지만 한글을 ascii로 해석이 불가능하기 때문에 SyntaxError발생
  • 영어만 사용하면 별로 신경 쓸게 없지만 한글은 euc-kr, utf-8이 공존하기 때문이다.
    • 그냥 골치아픈것도 아니고 unicode와 조합되어서도 골치아프다.
    • unicode 관련 부분의 경우 최초부터 지원한게 아니라 파이썬 2.4부터 지원을 추가되어서 문자열을 의미하는 타입이 strunicode가 존재해서 더 골치가 아프다
파이썬3에서는 기본값이 UTF-8이기 때문에 기본값에서 벗어나거나 다른 tool( ex: IDE또는 텍스트 편집기)를 사용하는 경우에만 사용 즉, 파이썬에 관한 다른 인코딩을 사용하고자 할때만 사용하면 됨
  • 파이썬의 기본 인코딩은 ascii이다.
  • 스크립트 파일이 ascii인코딩일거라고 가정하고 읽어서 파싱하려고하는데 ascii로 해석이 불가능한 한글이라는 단어가 존재하기 때문에 SyntaxError(문법 에러)가 발생
  • 이를 해결하기 위해서는 아래와 같은 스크립트 파일 첫줄에 파일의 인코딩을 명시해주면 된다.

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

 파이썬2.x의 기본 인코딩은 ascii 이다. 파이썬 스크립트에서 한글을 사용하게 될 때 파이썬은 ascii 인코딩일 것으로 예상하고 해석하려고 하지만 한글을 ascii로 해석이 불가능 하기 때문에 SyntaxError가 발생 한다.

출처 :https://libsora.so/posts/python-hangul/

댓글

이 블로그의 인기 게시물

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?