2021. 4. 27. 16:20ㆍProgramming
일반적인 mysql 기본세팅일 경우 이모티콘을 텍스트로 저장할 경우 물음표로 저장이 된다.
이는 유니코드 U+10000 이상인 문자들을 UTF-8로 인코딩하려면 4바이트가 필요하기 때문이다.
그래서 utf8mb4로 인코딩을일반적인 mysql 기본세팅일 경우 이모티콘을 텍스트로 저장할 경우 물음표로 저장이 된다.
이는 유니코드 U+10000 이상인 문자들을 UTF-8로 인코딩하려면 4바이트가 필요하기 때문이다.
그래서 utf8mb4로 인코딩을 값을 적용해야 한다.
1. my.cnf(리눅스)나 my.ini(윈도우즈)설정 파일을 다음과 같이 수정한다.
----------------------------------------------------------
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = uft8mb4
[mysqldump]
default-character-set = uft8mb4
[mysqld]
skip-character-set-client-handshake
#init_connect="SET collation_connection = utf8mb4_unicode_ci"
#init_connect="SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
----------------------------------------------------------
2. Mysql 재부팅으로 설정값 적용시킨다.
3. 콘솔에서 확인 설정 값 확인
> mysql -u root -p
mysql 패스워드 입력
확인] show variables like 'c%';
4. MYsql 워크 패치에서 각 데이터베이스, 테이블, 컬럼 설정
ALTER DATABASE
[데이터베이스]
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
ALTER TABLE `[데이터베이스]`.`[테이블명]`
CHARACTER SET = utf8mb4 , COLLATE = utf8mb4_unicode_ci ,
CHANGE COLUMN `[컬럼명]` `[컬럼명]` VARCHAR(1300)
CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci' NOT NULL ;
5. 워크배치에서 이모티콘 입력하는 데이터베이스에 다음과 같은 설정 값 변경
SET character_set_client = utf8mb4;
SET character_set_connection = utf8mb4;
SET character_set_results = utf8mb4;
확인 ) SHOW VARIABLES WHERE Variable_name like 'c%';
'Programming' 카테고리의 다른 글
Vue.js에서 Base64로 인코딩 된 이미지 파일 출력 (0) | 2023.03.30 |
---|---|
JavaScript Array 이해, push(), pop(), sort(), splice() (0) | 2021.08.05 |
JavaScrip로 ISO 8601을 지정시간으로 수정 (0) | 2021.04.26 |