사용자 도구

사이트 도구


database:mysql:charset

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
database:mysql:charset [2014/02/25 16:23]
kwon37xi [기본 설정]
database:mysql:charset [2018/11/22 16:41]
kwon37xi
줄 85: 줄 85:
 참조 : [[http://database.sarang.net/?inc=read&aid=22988&criteria=mysql&subcrit=&id=&limit=20&keyword=collation&page=1|MySQL 4.1.8 RPM 설치시 한글설정. Database.sarang.net]] 참조 : [[http://database.sarang.net/?inc=read&aid=22988&criteria=mysql&subcrit=&id=&limit=20&keyword=collation&page=1|MySQL 4.1.8 RPM 설치시 한글설정. Database.sarang.net]]
  
 +
 +===== 스마트폰 이모지(emoji) 입력 =====
 +  * 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** 권장
 +  *utf8_general_ci와 utf8_unicode_ci는 한국어, 영어, 중국어, 일본어에서는 Collation의 결과가 동일하다. 성능은 
 + utf8mb4_general_ci가 더 좋다.
 +  * DB 서버에서 문자셋을 ''UTF8MB4'' 로 만들거나,<code>
 +CREATE DATABASE my_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 +</code>
 +  * 혹은 특정 컬럼만 변경할 경우<code sql>
 +ALTER TABLE table_name MODIFY columnName text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 +</code>
 +  * DB 자체를 UTF8MB4 로 만들어도 JDBC URL에 ''characterEncoding=UTF8''만 가능하다. UTF8MB4는 실존하는 표준 인코딩이 아니므로 명시할 수 없다.
 +  * DB 전체에 대한 charset 설정을 UTF8MB4로 하면 ''characterEncoding'' 설정을 하지 않고 ''unicode=true''만 있어도 자동인식한다.
 +  * 그렇지 않을 경우에는 JDBC 커넥션이 맺어질 때마다 아래 명령으로 커넥션의 인코딩을 변경해야 한다. [[java:database:connectionpool|Java JDBC Connection Pool / DataSource]] 사용시 DB 접속을 맺을 때마다 ''initialSql''을 지정하는 방법이 있으므로 그 방법으로 모든 커넥션을 맺을 때마다 해준다.<code sql>
 +set names utf8mb4 collate utf8mb4_unicode_ci;
 +</code>
  
database/mysql/charset.txt · 마지막으로 수정됨: 2022/04/14 12:51 저자 kwon37xi