Python 프로그래밍 > MSSQL - 불러온 데이터의 한글이 깨진다면!
등록일 : 2017-08-03 17:05
조회수 : 779,689
MS-SQL 필드의 varchar형으로 입력되어 있는 데이터의 한글이 깨지는 현상이 있다.
이유를 생각해 보면, python 소스코드는 기본 UTF-8 로 되어 있기 때문이 아닐까 하는 생각이 들었다.
이 문제는 다음과 같은 방법으로 해결 할 수 있다.
db = pymysql.connect(host='xxx,xxx,xxx,xxx', port=1143, user='계정ID', password='계정 비밀번호', database='디비명', charset='UTF8')
연결정보 마지막에 charset='UTF8' 에서 지정해 주면 한글깨짐을 막을 수 있다.
만약 디비 필드의 데이터형이 varchar 일경우 , nvarchar 형으로 바꾸면 한글이 깨지지 않는다. 그러나, varchar 형으로 만들었고, 이를 바꿀 수 없다는 charset 항목을 'EUC-KR' 을 지정하면 이를 해결할 수 있다.
db = pymysql.connect(host='xxx,xxx,xxx,xxx', port=1143, user='계정ID', password='계정 비밀번호', database='디비명', charset='EUC-KR')
그리고 cur = db.cursor() 커서를 바인딩 한 뒤 cur.execute("set name utf8")라는 함수를 실행한 뒤 부터는 데이타를 불러오면 깨져서 나오던 한글이 제대로 나온다.