>데이터 베이스 >MySQL 튜토리얼 >Java MySQL 상호 작용에서 \'java.sql.SQLException: 잘못된 문자열 값\' 오류를 해결하는 방법은 무엇입니까?

Java MySQL 상호 작용에서 \'java.sql.SQLException: 잘못된 문자열 값\' 오류를 해결하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-24 16:39:11313검색

How to Resolve

java.sql.SQLException: 잘못된 문자열 값: 유니코드 문자 인코딩 문제 해결

Java 및 MySQL로 작업할 때 데이터베이스 작업에서 다음과 같은 문제가 발생할 수 있습니다. 잘못된 문자열 값과 관련된 오류입니다. 이러한 오류 중 하나는 "java.sql.SQLException: 잘못된 문자열 값"이며, 이는 특정 비표준 문자를 삽입할 때 발생할 수 있습니다.

예를 들어 "walmart obama ??" 문자열을 삽입하면 "varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL" 열 유형을 사용하여 MySQL 데이터베이스 테이블에 추가하면 위 오류가 발생할 수 있습니다. 문제는 기본 다국어 평면(BMP) 이상으로 확장되는 유니코드 코드 포인트를 나타내는 문자 "??"의 인코딩에 있습니다.

MySQL의 기본 인코딩인 utf8은 BMP 내의 문자만 지원합니다. 이모티콘 및 기타 특수 기호와 같은 BMP 외부 문자를 수용하려면 utf8mb4 인코딩을 사용해야 합니다.

해결책:

이 문제를 해결하려면 utf8mb4를 지원하기 위한 MySQL 데이터베이스 및 연결 설정 인코딩:

  1. MySQL 데이터베이스 업데이트:

    • MySQL 버전이 5.5 이상인지 확인하세요.
    • Alter 사용할 테이블 열 "varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL".
  2. MySQL 연결 구성:

    • 드라이버에 구애받지 않는 접근 방식의 경우 " SET NAMES 'utf8mb4'"와 연결을 설정한 후 데이터베이스.
    • Connector/J를 ​​사용하는 경우 연결 문자열에서 "characterEncoding"을 "utf-8"로 설정하면 호환되는 서버에서 utf8mb4를 자동으로 감지하고 사용합니다.

utf8mb4를 지원하도록 데이터베이스 및 연결 구성을 조정하면 "java.sql.SQLException: 잘못된 문자열 값" 오류가 발생합니다. 해결되어 BMP가 아닌 문자를 데이터베이스에 성공적으로 삽입할 수 있습니다.

위 내용은 Java MySQL 상호 작용에서 \'java.sql.SQLException: 잘못된 문자열 값\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.