TIL - MySQL 테이블 캐릭터셋, 콜레이션 UTF-8 설정하기(이모티콘 등록하기)

Yuni·2023년 6월 29일
0

TIL

목록 보기
1/8
post-thumbnail

게시물에 이모티콘이 있을 때 DB 저장 시 에러가 난다.

MySQL 사용시 'Incorrect string value: '에러가 나는 경우, 벨류에 이모티콘과 같은 이진 데이터를 넣어서 발생하는 에러입니다.

이모티콘과 같은 이진 데이터를 데이터베이스에 저장하려면 두가지 방법을 사용할 수 있습니다.

방법 1 (비추천)

해당 필드의 데이터 타입을 BLOB 또는 LONGTEXT와 같은 이진 형식으로 설정해야 합니다. 그러나 이는 일반적으로는 권장되지 않는 방법입니다.

방법 2 (추천)

이모티콘과 같은 특수 문자를 포함하는 텍스트를 데이터베이스에 저장하기 위해서는 일반적으로 해당 문자열을 UTF-8 또는 UTF-16과 같은 유니코드 문자열로 인코딩하여 저장하는 것이 좋습니다. 이를 위해 MySQL 데이터베이스의 테이블 및 필드의 캐릭터셋과 콜레이션 설정을 확인하고, 필요한 경우 UTF-8 또는 UTF-16으로 변경해야 합니다.

아래는 posts 테이블의 description 필드의 캐릭터셋 및 콜레이션을 UTF-8로 설정하는 예시입니다. 이를 통해 이모티콘과 같은 특수 문자를 저장할 수 있습니다.

코드

ALTER TABLE posts MODIFY description TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
profile
Look at art, make art, show art and be art. So does as code.

0개의 댓글