사용자 도구

사이트 도구


database:mysql:charset

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
마지막 판 양쪽 다음 판
database:mysql:charset [2018/07/31 14:18]
kwon37xi [스마트폰 이모지(emoji) 입력]
database:mysql:charset [2018/11/22 16:41]
kwon37xi [Charset과 Collation의 차이]
줄 5: 줄 5:
   * [[http://blog.naver.com/kumimo/80090609083|MySQL에서 문자셋과 Collation의 차이]]   * [[http://blog.naver.com/kumimo/80090609083|MySQL에서 문자셋과 Collation의 차이]]
  
-  A character set is a set of symbols and encodings. A collation is a set of rules for comparing characters in a character set. +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)은 심볼(글자)과 인코딩의 묶음이고, Collation은 문자셋의 문자들을 비교하는 규칙이다. 
-  문자셋(character set)은 심볼(글자)과 인코딩의 묶음이고, Collation은 문자셋의 문자들을 비교하는 규칙이다. +예를들어 글자 A=0, B=1, a=10, b=11 이라고 할 때 'A'는 글자이고 '0'은 인코딩이다. 여기서 볼 때 'A'와 'a'는 서로 다른 인코딩을 가지므로 다르다고 볼 수 있다. 
-   +하지만 만약 대소문자를 구분하지 않는(case insensitive) collation을 지정하면 'A'='a'가 되게 되는 것이다. 대소문자를 지정하지 않는 Collation은 ''_ci''로 끝난다.
-  예를들어 글자 A=0, B=1, a=10, b=11 이라고 할 때 'A'는 글자이고 '0'은 인코딩이다. 여기서 볼 때 'A'와 'a'는 서로 다른 인코딩을 가지므로 다르다고 볼 수 있다. +
-  하지만 만약 대소문자를 구분하지 않는(case insensitive) collation을 지정하면 'A'='a'가 되게 되는 것이다. 대소문자를 지정하지 않는 Collation은 ''_ci''로 끝난다.+
 ===== 기본 설정 ===== ===== 기본 설정 =====
   * UTF-8 설정 (Ubuntu : ''/etc/mysql/conf.d/encoding.cnf'', RedHat ''/etc/my.cnf'')<code>   * UTF-8 설정 (Ubuntu : ''/etc/mysql/conf.d/encoding.cnf'', RedHat ''/etc/my.cnf'')<code>
줄 89: 줄 87:
   * MySQL의 UTF-8은 3바이트 문자까지만 입력 가능하다. 4바이트를 입력하려면 **utf8mb4** 문자셋으로 변경해야 한다.   * MySQL의 UTF-8은 3바이트 문자까지만 입력 가능하다. 4바이트를 입력하려면 **utf8mb4** 문자셋으로 변경해야 한다.
   * [[https://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci|mysql - What's the difference between utf8_general_ci and utf8_unicode_ci]] - **utf8-unicode-ci** 권장   * [[https://stackoverflow.com/questions/766809/whats-the-difference-between-utf8-general-ci-and-utf8-unicode-ci|mysql - What's the difference between utf8_general_ci and utf8_unicode_ci]] - **utf8-unicode-ci** 권장
 +  *utf8_general_ci와 utf8_unicode_ci는 한국어, 영어, 중국어, 일본어에서는 Collation의 결과가 동일하다. 성능은 
 + utf8mb4_general_ci가 더 좋다.
   * DB 서버에서 문자셋을 ''UTF8MB4'' 로 만들거나,<code>   * DB 서버에서 문자셋을 ''UTF8MB4'' 로 만들거나,<code>
 CREATE DATABASE my_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE my_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
database/mysql/charset.txt · 마지막으로 수정됨: 2022/04/14 12:51 저자 kwon37xi