2012-06-18 5 views
13

나는 Flask와 MySQL을 사용하여 매우 간단한 웹 응용 프로그램을 개발 중입니다.pyMySQL 연결 문자 집합을 설정하십시오

저는 유니 코드에 어려움을 겪고 있습니다. 사용자는 Word에서 복사 한 내용을 붙여 넣기도하고 이전 스마트 인용문 u'\u201c'으로 넘어집니다.

약간의 조사 결과에 따르면 MySQL에 연결하려면 Latin1 charset (기본값 인 것처럼 보임)을 사용해야합니다.

연결에 유니 코드를 사용하도록 지정하려면 어떻게해야합니까?

저는 PyMySQL을 사용하고 있습니다.이 pyMySQL은 MySQLdb의 드롭 인 대체품입니다. MySQLdb는 객체에 대해 set_character_set(self, charset) 함수를 정의하지만 pyMySQL은 (내가 시도하면 오류가 발생합니다.)

+0

당신은'SET NAMES UTF8'을 가지고있는 모든 연결에 대해 원시 쿼리를 시도 할 수 있습니다. –

답변

46

pyMySQL source (나는 시도했지만 올바른 장소를 찾을 수 없습니다!)에서 주위를 샅샅이 조사하여 해결했습니다.

conn = pymysql.connect(host='localhost', 
         user='username', 
         passwd='password', 
         db='database', 
         charset='utf8') 

내 문제를 해결 : 당신이 연결을 만들 때

당신은 그것을 지정할 수 있습니다.

+2

sqlalchemy에서 pymysql을 사용하려고했기 때문에, 저를위한 수정은 mysql + pymysql : // user_name @ host_name/database_name? charset = utf8mb4'; 이 대답은 많은 도움이되었습니다! –

관련 문제