나는 codecs.open function
과 정말로 혼동합니다. 내가 할 때 : 그것은 잘 작동Python으로 UTF-8 파일에 쓰기
file = open("temp", "w")
file.write(codecs.BOM_UTF8)
file.close()
:
file = codecs.open("temp", "w", "utf-8")
file.write(codecs.BOM_UTF8)
file.close()
을 내가 할 경우 오류를 나에게
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)
을 제공합니다.
질문 첫 번째 방법이 실패하는 이유는 무엇입니까? 그리고 어떻게 뼈를 삽입합니까?
두 번째 방법이 올바른 방법 일 경우 codecs.open(filename, "w", "utf-8")
을 사용하는 요점은 무엇입니까?
에 알 수없는 문자 집합 파일을 변환 할 파일 * nix에서 스크립트 명령을 사용합니다. *** 제발. *** – tchrist
@ tchrist 응?왜 안돼? –
@SalmanPK BOM은 UTF-8에서 필요하지 않으며 복잡성 만 추가합니다 (예 : BOM 된 파일과 유효한 텍스트를 연결하는 것은 불가능 함). [이 Q & A] (http://stackoverflow.com/questions/2223882/whats-different-between-utf-8-and-utf-8-without-bom)를 참조하십시오. Q 아래에 큰 의견을 놓치지 마세요 –