Java 백그라운드 MySQL 데이터베이스에서 이모티콘을 지원하는 방법
회사에서 최근 개발 중에 문제가 생겼어요. 댓글의 게시와 답장을 하고 iOS와 안드로이드에서 표정을 추가할 때 오류가 나요.
Caused by: java.sql.SQLException: Incorrect string value: '\xF6\x9D\x98\x84' for column 'comment' at row 1
표정에 문제가 있다는 것을 알려주고 서둘러 자료를 찾아라.우선 데이터베이스 인코딩은 UTF-8이고 필드 content는 로 설정됩니다
text(CHARSET=utf8 COLLATE=utf8_unicode_ci)
게시물 내용 정보를 저장하는 데 사용됩니다. 현재 온라인에 올라온 새로운 기능은 이모티콘을 저장합니다. 이모티콘을 삽입하면 상기 오류가 발생합니다. UTF-8 인코딩은 두 개, 세 개, 네 바이트일 수 있습니다.이모티콘은 4바이트이고 Mysql의utf8은 최대 3바이트까지 인코딩되어 데이터가 삽입되지 않습니다.utf8mb4는utf8을 호환하고utf8보다 더 많은 문자를 표시할 수 있기 때문에 데이터베이스 인코딩을utf8mb4로 설정해야 합니다.데이터베이스 인코딩utf8에서utf8mb4로 설정
1. 수정 my.cnf
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
character-set-client-handshake = false
2. 데이터베이스와 관련된 테이블의 문자 집합 수정데이터베이스를utf8mb4로 변환
ALTER DATABASE post CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `post_article` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `post_article` MODIFY COLUMN `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3. 데이터베이스 재시작
sudo /etc/init.d/mysql restart
4. 데이터베이스 문자 집합이utf8mb4인지 확인
SHOW VARIABLES WHERE Variable_name LIKE 'character%' OR Variable_name LIKE 'collation%';
5. 자바 설정자바의 데이터베이스 연결을 설정하고 characterEncoding을 제거한 다음 mysqlconnector 버전이 5.1.13보다 높으면 OK
총결산
이상은 바로 이 글의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 일정한 도움을 줄 수 있기를 바랍니다. 만약에 의문이 있으면 여러분은 댓글을 남겨 교류할 수 있습니다. 저희에 대한 지지에 감사드립니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.