api로 db에 값을 넣었는데 글자가 깨지는 현상이 발생했다.
이에 대처 방법을 찾아보았다.
1. api와 연결된 db enconding확인하기
본인은 postgresql databse와 sqlalchemy를 사용하므로 이를 참고해 sql의 charset을 utf로 변경했다.
engine = create_engine("postgresql+psycopg2://user:pass@host/dbname?client_encoding=utf8")
https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#unicode
PostgreSQL — SQLAlchemy 2.0 Documentation
PostgreSQL’s full text search system is available through the use of the func namespace, combined with the use of custom operators via the Operators.bool_op() method. For simple cases with some degree of cross-backend compatibility, the Operators.match()
docs.sqlalchemy.org
2. database의 encoding확인하기
database encoding 문제일 수도 있으므로 UHC 에서 UTF8로 변경해준다.
https://velog.io/@jonah_official/PostgreSQL-clientencoding-%EC%84%A4%EC%A0%95
[PostgreSQL] client_encoding 설정
PostgreSQL의 client-encoding 설정 방법
velog.io
3. cmd창 코드페이지 확인하기
두 방법을 실행한 뒤, api로 요청보낸 응답은 깨지지 않고 잘 보이는데 cmd창으로 접속한 database에서는 글이 보이지 않았다. 이 경우 cmd의 문제일수도 있다.
보통 window는 cp949를 사용하고 있다. 이를 UTF-8에 해당하는 65001 코드 페이지 번호로 바꿔준다.
[Windows 10] cmd 한글 깨짐 현상 해결
CodePage 변경하기 CodePage 란? 레지스트리 편집기로 Console의 CodePage 변경 1. CodePage 란? 코드페이지는 전세계 문자와 키보드를 대응시키기 위해 만들어진 것으로 코드 페이지 설정에 따라 동일한 키
blog.jiniworld.me
위 3가지 방법을 실행한 뒤, 드디어 글자가 깨지지 않고 잘 나오는 것을 확인할 수 있다!
'메모' 카테고리의 다른 글
sqlalchemy 1.x버전과 2.0버전 쿼리 차이 (2) | 2023.12.14 |
---|---|
웹 컴포넌트(web component) (2) | 2023.04.26 |
SQLAlchemy - back_populates (0) | 2023.01.30 |
POST axios로 application/x-www-form-urlencoded 보내는 법(node.js) (0) | 2023.01.30 |
Eclipse로 spring 프로젝트 만들기 창이 보이지 않을때 (0) | 2020.02.20 |