파이썬에서 non-ASCII 문자를 파일에 쓰려고 합니다
글쓴이: mips / 작성시간: 목, 2008/05/22 - 11:52오전
import sys f = open(sys.argv[1], "wb") f.write("가나다") f.close()
위와 같은 코드가 있다고 하면, write에서 인코딩 문제 때문에 에러가 발생하네요.
coding: euc-kr을 넣어주면 된다고 하는데,
문제는 파일에 쓸 데이터가 euc-kr 뿐만 아니라 utf-8, euc-jp 등 어떤 인코딩셋이 들어올지 모르기
때문에 고정할 수도 없습니다.
간단하게 들어오는 문자를 변환없이 바이너리 형태로 파일에 쓰고 싶은데,
파이썬에서는 문자열 인코딩 때문에 잘 안 되네요.
문자열을 받아서 그대로 파일에 쓰는 방법은 없을까요?
Forums:
소스코드의 인코딩과 입력값의 인코딩은 다른 이야기같습니다.
coding: euc-kr 이런 식으로 써주는 것은 소스코드에서 쓰는 인코딩이 이렇다 라고 이야기하는 것이고
위의 코드가 에러를 내는 것은 소스 코드 내에 한글을 쓰게 될 경우엔 인코딩을 명시적으로 표시해줘야하기 때문이죠.
그리고 소스코드가 아닌 외부 입력 문자열의 경우엔 파일에 쓸 때 문제가 되지 않을 것입니다.
character-set이 보여줄 때 문제가 되기 때문에, 파일로 쓸 경우엔 지금 입력하는 문자열이 뭐다라는 정보까지 함께 담는 방식으로 해결해야겠지요.
아니면 아애 유니코드(UTF-8)로 접근해버리시는 게 쉬울 수 있습니다.
KT하이텔, 앱스 개발자
댓글 달기