본문 바로가기
Work/개발 노트

개발 노트, 서버와 Mysql 간 Encoding 문제

by ★용호★ 2014. 11. 25.
  • 문제
    • 서버에서 engine driver 사용시 한글 입력 하면 깨지는 문제가 발생했다.
      서버(유니코드) -> engine driver(라틴-1) -> mysql (라틴-1)
      
    • 유니코드를 라틴-1 코드로 변환하려다보니 한글이 깨지게 되었다.
  • 해결
    • MySQL의 CharacterSet을 변경한다.
    • my.cnf 파일 수정한다.
      • character-set-encoding=utf8 추가 및 수정
    • 서버쪽 engine의 Connect String에 characterset을 utf8로 셋팅하도록 한다.
      mysql://id:password@192.168.x.x/database?charset=utf8
      
  • Tip
    • mysql 서버가 라틴-1으로 되어 있더라도 engine에서 인코딩을 변환하는 작업만 하지 않는 다면 한글이 깨지진 않는다. (mysql은 클라이언트가 넘겨주는 값 그대로 저장)
    • encoding 문제가 발생하면 서버와 database 간의 설정으로 해결할 것. 로직을 건드리기 시작하면 일이 커질 수 있다.


댓글