2016-06-07 11 views
2

이것은 나를 미치게 만들고 커뮤니티에서 다른 제안을 시도했지만 나던 한 것 같습니다. 작업. 난 그냥 utf - 8을 사용하여 데이터베이스를 재현 해 봤는데 여전히 나 에게이 오류를 제공합니다.UnicodeEncodeError : 'latin-1'코덱은 ' u2013'문자를 637 위치에 인코딩 할 수 없습니다. 서수는 범위에 포함되지 않습니다 (256)

기본적으로 pymysql 모듈을 사용하고 db에 쓰고 있습니다.

openconnect = pymysql.connect (호스트 = "XXXX"포트 = 3306 사용 = 'xxx'가, passwd 파일 = "XXX", DB = "XXXX") opencursor openconnect.cursor =()

내 열 중 하나가 문제가되고, 기본적으로 전 옵션 ... 문제가 될 발생할

열을 시도하고 난 다음

피사체 = (df.Subject [I])

시도

subject.encode ('latin-1', 'ignore')

그리고 DB에 쓰기를 시도하면 실패합니다. subject.encode ('latin-1')도 시도하면 실패합니다.

인코딩을 수정하거나 utf-8을 사용하기 위해 pymysql에서 연합을 설정하는 방법은 두 가지가 있습니다. 나는 db를 확인했고, mysql의 연합은 utf-8로 설정되어있다. 이 사실에 대한 귀하의 의견을 진심으로 감사드립니다.

아직도 어려움을 겪고 있습니다. 환호 Kabeer

+0

어떻게 든 형식화하는 문제 대상 = (df.Subject [I])과 다음에 line subject.encode ('latin-1', 'ignore') – NKB

+0

'# - * - coding : utf-8 - * -'스크립트의 맨 위에이 줄을 추가하십시오. –

+0

방금 ​​시도한 .. 여전히 동일한 오류가 발생합니다. – NKB

답변

8

내가 (호스트 = 'XXXX', 포트 = 3306, 사용자 = 'XXX'를

openconnect = pymysql.connect를 연결 pymysql의 캐릭터 세트를 정의하여 문제를 해결할 수 있었다, passwd를 = 'XXX', DB = 'XXXX', 캐릭터 세트 = 'UTF-8')

은 UTF8입니다주의하지 UTF8

+1

왜 downvotes 모르겠어요. 나는 같은 문제를 가지고 있고'charset = 'utf8' '이 그것을 해결했다. 감사 :) – Kamil