1. 서버 측에서 my.cnf 파일을 편집하고 [mysqld] 아래에 Character_set_server = utf8 줄을 추가한 다음 mysql 서비스를 다시 시작하세요2. jdbc를 사용하여 연결할 때 올바른 인코딩(jdbc:mysql://127.0)을 지정하세요. .0.1:3306/test?useUnicode=true&characterEncoding= utf8
2. Character_set_server = utf8로 구성한 이유는 무엇입니까? jdbc에 연결할 때 인코딩을 지정할 필요가 없습니다. , jdbc는 먼저 서버의 Character_set_server 값을 쿼리한 다음 연결 시 사용할 인코딩을 결정합니다. 클라이언트의 자동 감지 인코딩 기능을 재정의하려면 CharacterEncoding 속성문서 주소를 사용할 수 있습니다: https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-charsets.htmlcharacter_set_connection: 연결 계층 문자 집합 character_set_database: 현재 선택한 데이터베이스의 기본 문자 집합
character_set_filesystem: OS의 파일 이름을 다음으로 변환합니다. 이 문자 집합은 아무 작업도 수행하지 않습니다. 변환됨character_set_results: 쿼리 결과 문자 집합
character_set_server: 기본 내부 작업 문자 집합character_set_system: 시스템 메타데이터 문자 집합데이터 삽입: 서버가 클라이언트(character_set_client)로 데이터를 전송하면 문자 집합이 Character_set_connection으로 변환되고, 이후 Character_set_connection 문자 집합이 해당 문자 집합으로 변환되어 디스크에 저장됩니다.character_sets_dir: 문자 집합 경로
그런 다음 문자 집합 변환 프로세스를 이해합니다.
mysql 구성 파일을 수정합니다. 서버 측에서 my.cnf 파일을 편집하고 [mysqld] 아래에 Character_set_server = utf8 줄을 추가한 다음 mysql 서비스를 다시 시작한 다음 문자 집합을 쿼리합니다.
1. 테이블 생성 시 설정된 문자 3. Character_set_database 문자 집합
4. 데이터 쿼리:
서버는 디스크에 저장된 문자 집합의 데이터를 Character_set_results 문자 집합으로 변환하고 클라이언트로 반환한 다음 분석합니다1. jdbc는 CharacterEncoding=utf8을 설정하지 않으며 서버는 Character_set_server입니다. latin1, jdbc는 latin1 문자셋으로 데이터베이스에 연결하고, 데이터베이스 서버는 latin1을 utf8로 변환한 후 디스크에 저장합니다(character_set_connection에서 지정한 문자셋과 생성 테이블이 모두 utf8이기 때문에). 이로 인해 문자 깨짐 현상이 발생합니다
2. jdbc가 CharacterEncoding=utf8을 설정하지 않았거나, 서버 Character_set_server가 utf8이거나, jdbc가 CharacterEncoding=utf8을 설정하고, jdbc가 utf8 문자 세트 데이터베이스와 연결되어 있고, 데이터베이스 서버가 utf8로 디스크에 저장한 다음 데이터는 정상입니다
위 내용은 Java에서 jdbc를 통해 데이터베이스에 연결할 때 중국어 문자가 깨지는 문제에 대한 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!