Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Current »

테드폴허브 에서 MySQL Character 설정은 다음과 같습니다.

데이터베이스 목록을 사용자가 처음 접속하면 

  • show variables like 'character_set_database'  의 실행 결과를
  • set names '%s' 으로 실행합니다.

또한 위의 과정은 사용자가 에디터를 오픈할때, 에디터에서 스키마를 변경할때 위의 과정으로 set name를 해주게됩니다. 

여기에서는 MySQL 데이터베이스에 모두 같은 character schema 라면 문제가 되지 않습니다. 
문제는 schema마다 다른 character이거나 혹은 테이블, 특정 컬럼이 다른 character일때 문제가 됩니다. 

utf8문자가 깨지는 것을 확인했습니다. 


테스트 환경

  • MySQL 5.7.22
  • JDBC Driver MySQL Connector Java mysql-connector-java-5.1.46

현재 환경 (set name을 해 주었을 경우, connect 문자열에 characterEncoding=utf8 이 설정되지 않음)

  • 이미 입력된 데이터의 한글이 깨져 보이지 않지만, 데이터 입력시(insert, update) 한글이 깨짐. 

set name을 해주지 않았을 경우.  (connect 문자열에 characterEncoding=utf8 이 설정 함)

  • 이미 입력된 데이터의 한글이 깨져 보이지 않고, 데이터 입력시(insert, update) 한글이 정상으로 보이고, 깨지지 않는 것을 확인. 

set name을 해주지 않았을 경우.  (connect 문자열에 characterEncoding=utf8 이 설정하지 않음)

  • 이미 입력된 데이터의 한글이 깨져 보이지 않지만, 데이터 입력시(insert, update) 한글이 깨짐. 

(작성 중....)

앞으로 다음과 같은 방법으로 개선하는 것이 좋겠습니다. 

  • MySQL연결 문자열에 characterEncoding=utf8 를 기본으로 붙여 준다.
  • 임으로 set name을 해주지 않는다.
    • 다만, 사용자가 임으로 옵션을 주었을 경우 해준다.
  • No labels