MSN의 UTF-8 인코딩 문제 질문드립니다..
글쓴이: sadrove / 작성시간: 토, 2005/04/30 - 12:45오전
파이썬으로 MSN봇을 만들었습니다..
MS윈도우에서는 별 문제없이 잘 돌아가던것이..
리눅스(페도라코어3)로 이식하면서 인코딩 문제에서 이상하게 됩니다..
글자가 모조리 깨져 나옵니다..
기존(MS윈도우)에는 아래와 같이 메시지를 보냈었거든요..self.sock.send(buf)
MSN은 UTF-8을 사용하는 것으로 알고 있습니다.
혹시나 해서 아래와 같이 했더니..아예 소켓이 예외처리 되어 버리네요..self.sock.send(buf.encode('utf-8'))
조언 부탁드립니다..꾸벅..
Forums:


[code:1]self.sock.send(buf.decode&
self.sock.send(buf.decode('euc-kr').encode('utf-8'))알려주신대로해도 역시 소켓 예외처리가 일어나네요..ㅠ.ㅠ..혹시나 해
알려주신대로해도 역시 소켓 예외처리가 일어나네요..ㅠ.ㅠ..
혹시나 해서.. 메시지를 전송하는 메쏘드 부분을 올립니다..
환경은 페도라코어3 입니다.
def msgSend(self, sendMsg): # 만일 메시기 없으면 기본 메시지 내용 보냄 if(sendMsg == ''): sendMsg = '-----' * 15 + '\r\n' sendMsg += '[MSN봇입니다.]\r\n' sendMsg += '-----' * 15 + '\r\n' # 메시지 헤더 구성 sendMsging = 'MIME-Version: 1.0\r\n' sendMsging += 'Content-Type: text/plain; charset=UTF-8\r\n' sendMsging += 'X-MMS-IM-Format: FN=Arial; EF=; CO=f85c30; CS=81; PF=22\r\n\r\n' sendMsging += sendMsg # 서버에 보낼 패킷 구성/ packet = SendPacket('MSG') trid = self.getTrid() packet.add(trid) packet.add('N') packet.add(str(len(sendMsging))+'\r\n' + sendMsging) print self.objectname + '[SEND:' + str(self.sock.fileno()) + '] ' + sendMsging buf = packet.toSend() self.sock.send(buf.decode('euc-kr').encode('utf-8'))[quote="Anonymous"][code:1]self.sock.s
다시 해보니..
라는 에러메시지가 뜹니다..
페도라에서 euc-kr을 인식하지 못하는건가요..?..
^^;;..
캐릭터셋에 대한 지식이 무지한지라 이해가 잘 안가네요...
도와주세요..... :cry:
파이썬이면 기본으로 Korean(euc-kr) 지원이 안됩니다.저도
파이썬이면 기본으로 Korean(euc-kr) 지원이 안됩니다.
저도 그래서 KoreanCodecs-pure 를 깔았었습니다.(또는 CJKCodecs 를 깔면 됩니다)
rommance.net
댓글 달기