Tomcat 및 MySQL 관련 한글 인코딩 문제

Tomcat 에서 JDBC 를 이용하여 MySQL 에 한글로 된 정보를 저장할 때 겪었던 인코딩 관련 문제 경험을 바탕으로 몇 가지 문제에 대해 정리한 글이다.

Tomcat response

Java Servlet 작성 시 한글 인코딩이 깨져서 출력되는 경우 해결법.

doPost 또는 doGet 에서 아래와 같은 코드를 추가하여 해결 할 수 있음.
Filter 를 이용하여 변경하면 매번 입력할 필요는 없음.

response.setContentType("text/html; charset=utf-8");

JDBC MySQL

JDBC 를 이용하여 MySQL 데이터를 삽입 할 때 한글이 ??? 와 같이 저장되는 경우 해결법.

원인 :

JDBC 에서 MySQL 에 데이터를 저장 할 때 latin1 인코딩으로 통신하기 때문에 발생.

해결방법 :

Connection 객체 생성시 db url 뒤에 유니코드 사용 및 인코딩을 설정하여 줌.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

String url = "jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8";
Connection con = DriverManager.getConnection(url, "id", "password");

JDBC java.sql.SQLException

java.sql.SQLException 이 발생할 경우 해결법

원인 :

MySQL 의 인코딩이 기본으로 latin1 로 설정되어 있기 때문에 발생.

해결방법 :

mysql/my.cnf 또는 mysql/my.ini 를 편집해 줌으로써 MySQL 의 인코딩을 변경해 주는 방법도 있으나, Table 을 생성할 때 기본 문자 인코딩 값을 지정해 주는 것이 더 쉽게 해결 할 수 있음.

CREATE TABLE table_name (
    col1 VARCHAR(100) ,
    col2 VARCHAR(100) ,
) DEFAULT CHARSET=utf8;

References

  • MySQL 인코딩 변경 관련 링크

http://lvsin.tistory.com/176
http://appletree.or.kr/blog/notes/mysql의-기본-인코딩default-encoding을-utf8으로-설정하기
http://dev.mysql.com/doc/refman/4.1/en/charset.html

  • MySQL 인코딩 변경 명령어
현재 캐릭터 셋 확인
mysql>show variables like 'char%';

변경
mysql> SET character_set_client = utf8;
mysql> SET character_set_results = utf8;
mysql> SET character_set_connection = utf8;
mysql> ALTER DATABASE DB명 DEFAULT CHARACTER SET utf8;

 [출처] https://proinlab.com/archives/1147

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
146 Connect to MSSQL Server in JPA file 졸리운_곰 2020.01.24 85
» Tomcat 및 MySQL 관련 한글 인코딩 문제 졸리운_곰 2020.01.23 88
144 전자정부 표준 프레임워크 egov bootstrap 부트스트랩 적용 file 졸리운_곰 2020.01.15 2130
143 JHIPSTER로 빠르게 SPRING BOOT, ANGULAR PROJECT 세팅하기 file 졸리운_곰 2019.12.31 246
142 Spring Boot와 AngualrJS를 조합한 코드 자동 생성 도구(scaffolding) file 졸리운_곰 2019.12.31 88
141 spring security 파헤치기 (구조, 인증과정, 설정, 핸들러 및 암호화 예제, @Secured, @AuthenticationPrincipal, taglib) file 졸리운_곰 2019.04.06 276
140 DAO vs DTO(=VO) 개념 알아보기 졸리운_곰 2019.01.04 217
139 DAO / VO / DTO란? 졸리운_곰 2019.01.04 272
138 JSP get 전송을 수신페이지에서 hidden으로 받아 javascript에서 활용 졸리운_곰 2019.01.03 60
137 JSP와 자바스크립트간의 정보 전송방법 file 졸리운_곰 2019.01.03 95
136 Intellij 에서 spring boot + jsp 설정 file 졸리운_곰 2018.12.01 143
135 How to Setup Spring-Boot with ReactJS and Webpack 스프링부트와 ReactJS와 webpack 패키징 file 졸리운_곰 2018.10.28 75
134 Use React and Spring Boot to Build a Simple CRUD App 기본적인 스프링부트와 React.js의 CRUD 기능 구현 file 졸리운_곰 2018.10.28 171
133 Bootiful Development with Spring Boot and React 스프링 부트와 리엑트.js의 연동 file 졸리운_곰 2018.10.28 121
132 [Spring] 스프링 비밀번호 암호화 졸리운_곰 2018.10.08 2280
131 cos.jar로 파일 업로드 하기 졸리운_곰 2018.09.11 207
130 React.js and Spring Data REST : react.js 자바 스프링 연동 file 졸리운_곰 2018.09.11 2106
129 How To Integrate React in JSP Application : React와 JSP 연동 file 졸리운_곰 2018.09.11 1516
128 [CKEditor] JSP에서 사용하기 졸리운_곰 2018.09.06 124
127 [JSP]톰캣 서버 IntelliJ 구동,JSP 간단한 예제 실행 file 졸리운_곰 2018.09.05 309
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED