 |
파이썬 마을 우리나라 파이썬 사용자들의 이야기 마을
|
|
| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
i5on9i
가입: 올린 글: 12
|
올려짐: 2006 10월 31 12:41 pm 주제: # -*- coding: utf-8 -*- 가 무슨 의미죠? |
|
|
한참 한글 처리 때문에 고심하다가,
unicode를 쓰기로 했는데,
찾다가 저런 표시를 하면,
utf-8으로 인식한다고 해서,
저는 .py내의 모든 string을 알아서 utf-8으로 처리하나 보다라고 생각했는데,
그게 아닌가 보더군요..^^;;;
어디서 보니까 단순히 저장할 때 자동적으로 BOM 을 추가 한다는 것 같은데,
실제로 저장하고 살펴봐도 BOM 이 추가된 것 같지는 않은데...
도대체 뭔지 모르겠네요,
혹시 의미를 아시면 좀 가르쳐 주세여^^
그럼 좋은 하루 되세여~ |
|
| 위로 |
|
 |
장혜식 사이트 관리자

가입: 올린 글: 1374
|
올려짐: 2006 10월 31 1:32 pm 주제: |
|
|
소스코드 인코딩을 의미합니다. (정확한 명세에 대해서는 PEP-263 http://www.python.org/dev/peps/pep-0263/ 을 참조하시면 됩니다.)
이게 현실적으로 한국인 사용자들에게 갖는 의미는 u'xxxx'를 정의할 때
이게 제대로 되느냐 안 되느냐의 차이가 거의 유일합니다. 예를 들어
coding: latin 으로 정의하시고 u'한글' 이라고 쓰면
u'\xed\x95\x9c\xea\xb8\x80' 과 같이 latin으로 디코드된 유니코드
문자열이 돼 버리지만, coding: utf-8로 정의하시면 u'\ud55c\uae00'로 제대로 됩니다.
(유니코드가 아닌 일반 문자열의 경우에는 그냥 디코딩 했다가 다시 인코딩
하기 때문에, 제대로 된 글자이기만 하면 느낄 수 있는 차이가 없습니다.)
그 외에 한국인 사용자들이 인식하지 못하는 다른 영향으로는 일본과 중국의
인코딩 처리에 관련된 것인데요, 일본의 shift-jis 같은 경우에는 문자의 2번째에
아스키의 괄호나 부호같은 것들과 같은 코드가 사용되기도 합니다. 따라서,
인코딩이 latin으로 선언된 상태에서 shift-jis를 쓰면 심지어 괄호가 안 맞다고
문법이 틀렸다고 에러를 내기도 하고, 인덴트가 틀렸다고 하기도 하고,
문자열이 의도하지 않은 곳에서 끝나서 기상천외한 에러가 납니다.
그래서 coding: shift-jis로 인코딩을 제대로 선언해 주면, 이런 것들 까지도
모두 제대로 디코딩한 다음에 처리가 되기 때문에 결국 원하는 대로 그냥
일반적인 파이썬 문법으로 쓸 수 있게 됩니다. (중국의 gb18030같은 경우에도
shift-jis보다는 좀 덜하지만 비슷한 문제가 있긴 합니다.)
그 외에 coding을 제대로 정의하시면 에디터가 자동으로 인식한다거나
(emacs, vim 류)하는 장점들도 있습니다. _________________ http://me2day.net/hyeshik |
|
| 위로 |
|
 |
i5on9i
가입: 올린 글: 12
|
올려짐: 2006 11월 01 6:02 pm 주제: 답변 감사합니다. |
|
|
| 언제나 좋은 답변에 감솨 드립니다.(^^)(__)꾸벅~ |
|
| 위로 |
|
 |
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
|