본문 바로가기

IT-Consultant

UnicodeDecodeError: 'utf8' codec can't decode byte 0x90 in position 2: invalid start byte

UnicodeDecodeError: 'utf8' codec can't decode byte 0x90 in position 2: invalid start byte



이 에러가 무엇인고 하니. Python 입장에선 당연히 에러가 날 수 밖에 없는 상황이었다. 


L = [] 

L.append('abc');  일반 아스키 

L.append('unicode'); unicode 문자 


CRLF = '\r\n' 


body = CRLF.join(L) 


여기서 유니코드 문자와 일반 아스키를 묶으려고 하니 일반 아스키 코드를 유니코드로 변환하는 과정을 거친다. 그 때 0x90은 에러가 난다. 


코드에서 보면 이게 아스키인지 유니코드 인지 알 수 없다. 그런데 이클립스 디버깅 창에서 보면 나온다. 유니코드 값을 서버로부터 받은 값이라서 확인하지 않고 넘겼더니 이런 문제가 발생하는군..