본문 바로가기
Database

인코딩 방식 EUC-KR, UTF-8, UTF8MB4 차이

by 그적 2022. 11. 23.

한글 인코딩 방식에는 EUC-KR, UTF-8, UTF8MB4가 있다.

각 인코딩에 대해 알아보기 전에 아래와 같이 두 가지의

 

- 조합형 방식 : 초성, 중성, 종성을 구분하여 문자를 작성하여 한글을 인식함.

                        (ex. ㄱ ㅏ ㅇ -> 강)

- 완성형 방식 : 하나의 완성된 글자로 인식하여 확장성이 떨어지며 완성형 문자에 존재하지 않으면 한글이 깨짐.

                        (ex. 강, 광 / 꽚-> 한글 깨짐)

 

1. EUC-KR 인코딩

EUC-KR 인코딩은 완성형 방식을 채택하고 있고, ASCII 코드 값은 1바이트, 한글을 2바이트로 사용하는 가변 길이 캐릭터셋이다. EUC의 일종이며 한글 완성형을 지원하기 때문에, 한글과 영어만 사용할 경우에만 적합하다.

 

2. UTF-8 인코딩

UTF-8 인코딩은 조합형 방식을 채택하고 있고, 공백과 영문은 1바이트, 한글은 3바이트로 사용하는 가변 길이 캐릭터셋이다. 한글 팩이 설치되지 않은 곳이라도 한글 표현이 가능하다는 장점을 가진다. 또한 톰캣,  Nginx, 서버 인코딩은 기본적으로 UTF-8을 사용하고 있다. 

 

3. UTF8MB4  인코딩

UTF8MB4 인코딩은 UTF-8의 확장형이다. 보통적으로 4바이트 영역에는 이모티콘 같은 문자(유니코드 U+10000 이상의 문자)를 사용하기 위해 존재한다.

MySQL, MariaDB에 존재하는 캐릭터셋으로, 기본적으로 4바이트를 지원하는 UTF8는 3바이트만 저장한다. 따라서 4바이트를 완전히 사용하는 UTF8MB4 라는 새로운 캐릭터셋을 설정하면 이모지를 디비에 저장할 수 있다.

 

 

댓글