> 데이터 베이스 > MySQL 튜토리얼 > Java에서 MySQL 데이터베이스에 이모티콘을 삽입할 때 \'잘못된 문자열 값\' 오류를 해결하는 방법은 무엇입니까?

Java에서 MySQL 데이터베이스에 이모티콘을 삽입할 때 \'잘못된 문자열 값\' 오류를 해결하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-11-23 12:03:11
원래의
278명이 탐색했습니다.

How to Resolve

인코딩 예외: Java-MySQL의 Emojis에 "잘못된 문자열 값"

MySQL을 사용하는 Java 애플리케이션에서 "java. sql.SQLException: 잘못된 문자열 값: 'xF0x9Fx91xBDxF0x9F...'"가 있을 수 있습니다. 이모티콘 문자가 포함된 문자열을 삽입할 때 발생합니다. 이 오류는 문자 인코딩의 차이로 인해 발생합니다.

문제의 문자열 값에 "walmart obama ??"가 포함되어 있는데, 여기서 "???"는 이모티콘을 나타냅니다. 데이터베이스에서는 문자열이 삽입되는 변수가 varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL로 정의되어 있습니다. 그러나 애플리케이션에서 사용하는 MySQL 버전은 UTF-8 인코딩의 기본 BMP(다국어 평면) 문자만 지원합니다. BMP 범위를 벗어나는 이모티콘 문자는 이 인코딩에서 제대로 표현할 수 없습니다.

이 문제를 해결하려면 보조 문자를 지원하는 UTF-8mb4 인코딩으로 전환해야 합니다. 여기에는 다음 조정 작업이 포함됩니다.

  1. MySQL 서버 버전이 5.5 이상인지 확인하세요.
  2. 다음에 SET NAMES 'utf8mb4' 쿼리를 사용하여 MySQL 연결 인코딩을 "utf8mb4"로 설정하세요. 연결을 설정합니다.
  3. 영향을 받는 열에 대해 UTF-8mb4 인코딩을 사용하도록 데이터베이스 테이블을 수정합니다. 예: var1 varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL.
  4. Java Connector/J를 ​​사용하여 연결을 설정하고 연결 문자열에 CharacterEncoding이 명시적으로 설정되지 않았는지 확인하세요. 서버 캐릭터 감지 set.

이렇게 변경하면 애플리케이션에서 UTF-8mb4 인코딩을 사용하여 이모티콘 문자를 올바르게 처리할 수 있어 "잘못된 문자열 값" 예외가 해결됩니다.

위 내용은 Java에서 MySQL 데이터베이스에 이모티콘을 삽입할 때 \'잘못된 문자열 값\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿