안규 공부방

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")라는 함수를 실행한 뒤 부터는 데이타를 불러오면 깨져서 나오던 한글이 제대로 나온다.

 

※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
ㅇㅇㅇㅇ    2024-08-19 13:55
삭제
DB에서 직접 가져온 데이터는 한글이 안깨지는데 CASE WHEN ... THEN "한글값" 으로 설정한 컬럼만 한글이 깨져서 나오는데 혹시 이것도 해결 방법 아실까요? 말씀해주신 방법도 사용해보긴 했는데 변동 없어서요 !!
 
흠..    2023-10-27 10:21
삭제
큰도움이 되었습니다. 감사합니다.
 
ㅇㅇ    2023-08-02 17:02
삭제
charset='EUC-KR' 적용하니 바로 해결되었네요.. 감사합니다.
 
감사합니다    2022-12-07 15:27
삭제
진짜 정말 감사합니다 덕분에 시간 낭비 안하고 잘 되었습니다!!!!!!!!
 
디얼래머    2022-08-02 21:40
삭제
도움이 되어 댓글 남깁니다...무의미한 시간 낭비를 하지 않게 해주셔서 감사 드립니다...
 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.