mysql> insert into mvc_board ( bId, bName ) values ( 8, "한글테스트 ");
ERROR 1366 (HY000): Incorrect string value: '\xEC\x9C\xA0\xEC\xA7\x84' for column 'bName' at row 1
한글을 넣으려고 하면, mysql에서 한글 insert 오류가 발생합니다.
뿐만 아니라, Spring에서도 정상적으로 출력되지 않고, 외계어가 출력되는데 이 두개를 모두 해결해봅시다.
1. Mysql 설정
mysql은 일정 버전이 지나면, my.ini가 없는 경우가 있는데, 제가 설치한 mysql 도 디렉토리 내부에 my.ini가 따로 없었습니다ㅠ
이런 경우, 간단하게 my.ini 파일을 생성해주면 됩니다.
다른 블로그를 검색해보니, [mysqld] datadir, basedir 설정도 하던데.. 나는 하면 오히려 설정이 꼬이는건지
mysqld 실행이 정상적으로 안되어서 위 부분은 추가하지 않고 아래부분만 추가하였다.
[client] default-character-set = utf8 [mysqld] character-set-client-handshake=FALSE init_connect="SET collation_connection = utf8_general_ci" init_connect="SET NAMES utf8" character-set-server = utf8 collation-server = utf8_general_ci [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 |
환경설정을 마치고, mysql을 재 시작 해주면 됩니다.
저는 귀찮아서, 배치 스크립트를 따로 만들었습니다.
C: cd C:\Users\....\mysql-5.7.26-winx64/bin start mysqld.exe REM pause REM start mysql.exe -u root -pyuhe database-name적기 |
mysql.bat으로 저장하고 실행하면,
작업관리자에도 mysql이 잘 뜨고 있는 것을 확인 할 수 있습니다.
mysql> show variables like 'c%';
위와 같이 설정이 되어있어야 정상
문제는, 기존에 미리 생성해뒀던 테이블들에게는 적용이 안되어 있으므로, 적용을 시켜줘야합니다.
1. set character set euckr;
2. ALTER TABLE (테이블명) convert to charset utf8;
2. Spring 설정
spring에서도 web.xml에 설정을 해주어야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter>
<filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> |
cs |
위와 같이 설정을 해주어야 한글 깨짐이 없습니다.
servlet-context.xml 에도 아래 그림과 같이 추가해주어야 합니다.
출처
https://okky.kr/article/434141
'배우고 있습니다 > back-end 개발' 카테고리의 다른 글
탈출문자 '\' 가 생략 될 경우, 물음표 문자 db insert file path error (0) | 2019.08.29 |
---|---|
[Spring] DI 의존 관계와 프로퍼티 (0) | 2019.05.29 |
[Mysql+Spring] DB연동 및 DataSource 사용하기 (0) | 2019.05.28 |
프로그래밍 공부할 때 필요한 사이트 (0) | 2019.01.26 |
Java8 enum 이란? (0) | 2018.11.13 |