문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
database:mysql:charset [2018/06/18 16:36] kwon37xi [스마트폰 이모지(emoji) 입력] |
database:mysql:charset [2022/04/14 12:51] (현재) kwon37xi |
||
---|---|---|---|
줄 5: | 줄 5: | ||
* [[http:// | * [[http:// | ||
- | | + | > A character set is a set of symbols and encodings. A collation is a set of rules for comparing characters in a character set. |
- | + | > 문자셋(character set)은 심볼(글자)과 인코딩의 묶음이고, | |
- | | + | > 예를들어 글자 A=0, B=1, a=10, b=11 이라고 할 때 ' |
- | + | > 하지만 만약 대소문자를 구분하지 않는(case insensitive) collation을 지정하면 ' | |
- | | + | |
- | 하지만 만약 대소문자를 구분하지 않는(case insensitive) collation을 지정하면 ' | + | |
===== 기본 설정 ===== | ===== 기본 설정 ===== | ||
* UTF-8 설정 (Ubuntu : ''/ | * UTF-8 설정 (Ubuntu : ''/ | ||
줄 88: | 줄 86: | ||
===== 스마트폰 이모지(emoji) 입력 ===== | ===== 스마트폰 이모지(emoji) 입력 ===== | ||
* MySQL의 UTF-8은 3바이트 문자까지만 입력 가능하다. 4바이트를 입력하려면 **utf8mb4** 문자셋으로 변경해야 한다. | * MySQL의 UTF-8은 3바이트 문자까지만 입력 가능하다. 4바이트를 입력하려면 **utf8mb4** 문자셋으로 변경해야 한다. | ||
+ | * [[https:// | ||
+ | *utf8_general_ci와 utf8_unicode_ci는 한국어, 영어, 중국어, 일본어에서는 Collation의 결과가 동일하다. 성능은 | ||
+ | | ||
* DB 서버에서 문자셋을 '' | * DB 서버에서 문자셋을 '' | ||
- | CREATE DATABASE my_db DEFAULT CHARACTER SET utf8mb4 COLLATE | + | CREATE DATABASE my_db DEFAULT CHARACTER SET utf8mb4 COLLATE |
+ | </ | ||
* 혹은 특정 컬럼만 변경할 경우< | * 혹은 특정 컬럼만 변경할 경우< | ||
- | ALTER TABLE table_name MODIFY columnName text CHARACTER SET utf8mb4 COLLATE | + | ALTER TABLE table_name MODIFY columnName text CHARACTER SET utf8mb4 COLLATE |
</ | </ | ||
* DB 자체를 UTF8MB4 로 만들어도 JDBC URL에 '' | * DB 자체를 UTF8MB4 로 만들어도 JDBC URL에 '' | ||
* DB 전체에 대한 charset 설정을 UTF8MB4로 하면 '' | * DB 전체에 대한 charset 설정을 UTF8MB4로 하면 '' | ||
* 그렇지 않을 경우에는 JDBC 커넥션이 맺어질 때마다 아래 명령으로 커넥션의 인코딩을 변경해야 한다. [[java: | * 그렇지 않을 경우에는 JDBC 커넥션이 맺어질 때마다 아래 명령으로 커넥션의 인코딩을 변경해야 한다. [[java: | ||
- | set names utf8mb4 collate | + | set names utf8mb4 collate |
</ | </ | ||
+ | |||
+ | ===== 참조 ===== | ||
+ | * [[https:// | ||
+ | |||