2011-03-12 4 views
0
나는 이런 식으로 뭔가하려고 해요

:UnicodeEncodeError : 유니 코드를 사용하고자하는 아스키

 
outFile = open("file.txt", "wt",encoding='utf-8') 
outFile.write(str(sentence)) 
outFile.close() 

및 오류 점점 :

UnicodeEncodeError : '아스키'코덱 '/ x4e을'문자를 인코딩하지 수 .

왜 ASCII 인코더가 사용됩니까?

내 문자열 (str (문장))이 유니 코드라고 말하는 것이 맞습니까? 그렇다면 단순히 파일로 기록 할 때 utf-8로 인코딩되지 않는 이유는 무엇입니까? 이 코드는 Mac OS X에서 예외가 발생하면서 우분투 및 Windows에서 실행할 때 예외가 아닙니다.

그래 그 아스키 내가 명시 적으로 8 UTF-

이 도와주세요의 사용,

베리

답변

0

str()을 진술에도 불구하고 내 Mac에서 어딘가에 기본적으로 사용되는 문자열을 반환되고 나에게 보인다 . 그리고 str은 쓰여질 때 인코딩 될 것입니다, 그렇습니다. ascii 인코딩이 사용되는 이유 (파이썬 2에서는 기본 인코딩이지만 파이썬 3에서는 그렇지 않음)에 대해서는 잘 모르겠지만, 왜 그래야하는지 알 수는 없습니다 str(sentence). 바이트를 디코드하려면 str()을 사용하고 .decode()을 사용하십시오. 먼저 str() 호출을 제거하십시오.

전체 추적을 제공하지는 않지만 오류를 제공하는 것은 str(sentence)이라고 추측합니다.

관련 문제