MySQL 사용시 'Incorrect string value: '에러가 나는 경우, 벨류에 이모티콘과 같은 이진 데이터를 넣어서 발생하는 에러입니다.
이모티콘과 같은 이진 데이터를 데이터베이스에 저장하려면 두가지 방법을 사용할 수 있습니다.
해당 필드의 데이터 타입을 BLOB 또는 LONGTEXT와 같은 이진 형식으로 설정해야 합니다. 그러나 이는 일반적으로는 권장되지 않는 방법입니다.
이모티콘과 같은 특수 문자를 포함하는 텍스트를 데이터베이스에 저장하기 위해서는 일반적으로 해당 문자열을 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;