본문 바로가기
Study/Spring

sts로 mysql을 연동, mybatis를 이용하여 db에 데이터를 입력시 한글 ??? 표기 현상

by 얏옹이 2023. 2. 23.
반응형

팀 프로젝트를 진행하던도중 기이한 현상을 발견했다.

 

 

DB에서 insert문을 직접 날려준 데이터는 정상적으로 한글이 표기되지만, 입력 Form을 만들어서 작성한 글들은 한글이 다 ???처리 되는 현상...

 

DB를 살펴봤다.

음...? DB에도 값이 ???로 들어갔다. 이게 무슨일이지...

 

한참을 검색해보고 구글링도 신나게해보고, chatGPT에도 물어보고 여러가지 방법을 시도해보았다.

 

다 하나같이 Encoding 설정을 살펴보라는 이야기였는데.. 분명히 Table 생성과 Database 생성해줄때 Characterset UTF-8이 정상적으로 들어가있었다

 

Okky에도 질문을 올려보고... Mysql cmd창을 열어서 utf8도 다시 입력을해주고... 온갖 JSP 파일에도 인코딩을 확인하고...

 

sts도 다시확인해서 콘솔에도 찍어보고....

 

콘솔은 정상적으로 한글이 출력된다.

 

 

DB도 정상적으로 utf8... 안되서 mb3와 mb4까지 붙여줘봤지만 그래도 동일...

 

 

아무리 검색력을 총 동원하고 수많은 설정도 해줘봤지만 결과는 동일....

 

그러다가 우연찮게 해결하게되었다... 그것은 바로

 

jdbc.properties파일 내에 jdbc.url 부분이 문제였었다. 수업시간에 진행했던걸 그대로 복사해와서 붙여넣기한건데....

 

 

파일에들어가면 jdbc 연결과 관련된 정보들이 적혀있다. mybatis를 사용하고있기때문에 DB의 Drvier, URL, UserID, UserPassword가 적혀있는데.. URL 부분을 살펴보면

jdbc.url=jdbc:mysql://localhost:3306/springproject?serverTimezone=UTC&useUnicode=true&chracterEncoding=utf8&mysqlEncoding=utf8&useSSL=false

 

xml파일에 이러한 형태로 등록이 되어있다. 여기서가 문제였다. 이 에러로 이틀을 고생했는데 해결방법이 이런거여서 좀 허무하기도 했다.

 

바로 CharacterEncoding이 ChracterEncoding으로 적혀있었던것이다. a가 빠졌다...

 

내가 작성한것도 아니고 수업시간에 사용하던걸 고대로 복사해와서 사용한건데 어이가없기도하면서 아무 생각없이 복사 붙여넣기해서 사용한다는게 얼마나 위험한건지 뼈저리게 알게되는 경험이였다.

 

지금은 정상적으로 a를 붙여주고나니 한글이 잘 출력된다...

 

 

반응형