JDBC에서 MySQL UTF-8 문자열 처리 시 실수
JDBC 인터페이스를 통해 MySQL에서 UTF-8 문자열을 잘못 처리하면 데이터 손실이 발생할 수 있습니다. 손상 또는 디스플레이 문제. 이 기사에서는 JDBC를 통해 삽입된 데이터가 데이터베이스에서 왜곡되어 나타나는 시나리오를 조사합니다.
제공된 코드 조각은 MySQL 데이터베이스에 대한 연결을 설정하고 UTF-8 텍스트를 테이블에 삽입하는 Java 프로그램을 보여줍니다. 그러나 삽입된 데이터를 확인하면 예상 문자가 물음표로 바뀌면서 텍스트가 잘못 표시됩니다.
문제는 MySQL 내의 문자 인코딩 설정에 있습니다. 기본적으로 MySQL은 UTF-8과 호환되지 않는 latin1 문자 집합과 데이터 정렬을 사용합니다. 이 문제를 해결하려면 다음 단계가 중요합니다.
1. 문자 인코딩 설정 확인
현재 문자 인코딩 설정을 보려면 다음 SQL 명령을 실행하십시오.
show variables like 'character%'; show variables like 'collation%';
출력에는 두 문자 인코딩 모두에 대해 문자 인코딩이 utf8로 설정되어 있어야 합니다. 서버와 데이터베이스
2. UTF-8용 MySQL 구성
인코딩이 올바르지 않은 경우 다음 줄을 추가하여 MySQL 구성 파일(my.cnf)을 업데이트하여 수정하세요.
[mysqld] character-set-server = utf8 character-set-filesystem = utf8
또는 MySQL Workbench를 사용하여 이러한 설정을 시각적으로 수정할 수 있습니다.
3. 적절한 URL 매개변수로 연결
Java 연결을 설정할 때 JDBC URL에 다음 매개변수를 포함하세요.
jdbc:mysql://localhost:3306/myDatabase?useUnicode=true&characterEncoding=UTF-8
4. 불필요한 명령 제거
코드에서 다음 명령을 제거하십시오.
query = "set character set utf8"; stat.execute(query);
이러한 명령은 연결 매개변수가 올바르게 구성된 경우 필요하지 않습니다.
예상 결과
변경 사항을 적용하고 다시 시작한 후 MySQL의 경우 데이터는 JDBC를 사용하여 올바르게 저장 및 검색되어야 하며 예상 UTF-8 형식으로 표시되어야 합니다.
위 내용은 MySQL에서 JDBC를 사용할 때 UTF-8 문자열이 왜곡되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!