mysql에서 중국어를 사용할 수 없으면 어떻게 해야 합니까?

PHPz
풀어 주다: 2023-04-21 10:18:35
원래의
3792명이 탐색했습니다.

MySQL은 많은 개발자에게 개발 작업의 필수품이 된 일반적인 관계형 데이터베이스 관리 시스템입니다. 그러나 MySQL을 사용할 때 많은 사용자들이 "중국어를 사용할 수 없습니다"라는 문제에 직면할 수 있습니다.

MySQL이 중국어를 사용할 수 없는 것은 주로 두 가지 측면에서 나타납니다. 한편으로는 MySQL 명령줄 인터페이스의 중국어 문자가 왜곡되어 있고 다른 한편으로는 MySQL 데이터베이스의 한자 저장 및 쿼리 문제입니다. 이 기사에서는 문제의 두 가지 측면을 자세히 살펴보고 해당 솔루션을 제공합니다.

MySQL 명령줄 인터페이스의 중국어 문자가 깨졌습니다.

MySQL 명령줄 인터페이스는 MySQL의 핵심 기능입니다. 개발자는 이 인터페이스에서 다양한 명령을 실행할 수 있습니다. 그러나 많은 사용자는 MySQL 명령줄 인터페이스를 사용할 때 잘못된 중국어 문자를 발견하게 됩니다. 이는 주로 MySQL의 기본 문자 집합이 "utf8"이 아닌 "latin1"이기 때문입니다.

다음은 MySQL 명령줄 인터페이스의 중국어 왜곡 문제를 해결하는 방법을 설명합니다.

방법 1: "mysql" 명령줄 도구를 사용할 때 "-u" 매개변수를 추가하여 중국어 문자 집합을 지원하는 사용자 이름을 지정합니다.

예를 들어 다음 명령을 사용하여 사용자 이름 "root"와 암호 "password"를 지정합니다.

mysql -u root -ppassword
로그인 후 복사

방법 2: 다음 명령을 사용하여 현재 MySQL 기본 문자 집합을 확인합니다.

mysql> show variables like '%character%';
로그인 후 복사

이 명령은 다음을 표시합니다. 현재 캐릭터 셋 설정 중, 그 중 'character_set_client', 'character_set_connection', 'character_set_results' 3개 파라미터의 값은 모두 'latin1'이다.

명령줄 인터페이스의 중국어 왜곡 문제를 해결하려면 이 세 가지 매개변수의 값을 "utf8"로 변경해야 합니다. 목적은 다음 명령을 통해 달성할 수 있습니다:

mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_results=utf8;
로그인 후 복사

방법 3: MySQL 구성 파일 "my.cnf"를 수정합니다.

MySQL 구성 파일에서 다음 세 줄의 코드를 찾습니다.

character-set-client-handshake = FALSE 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci
로그인 후 복사

아래 표시된 대로 이 세 줄의 코드 주석을 제거하고 값을 "utf8"로 변경합니다.

character-set-client-handshake = FALSE 
character-set-server = utf8 
collation-server = utf8_general_ci
로그인 후 복사

MySQL 데이터베이스의 중국어 문자 저장 및 쿼리 문제

명령줄 인터페이스의 중국어 왜곡 문제 외에도 MySQL 데이터베이스 자체에도 중국어 문자 저장 및 쿼리 문제가 있을 수 있습니다.

예를 들어, 한자가 포함된 일부 데이터를 MySQL 데이터베이스에 삽입하면 다음 오류가 발생할 수 있습니다.

Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1
로그인 후 복사

이는 MySQL의 기본 문자 집합이 "utf8"이 아니라 "latin1"이기 때문입니다. 중국어로 테이블 생성 및 데이터 저장을 지원하려면 테이블 구조의 문자 집합을 "utf8"로 설정해야 합니다.

다음은 MySQL 데이터베이스의 한자 저장 및 쿼리 문제를 해결하는 방법을 설명합니다.

방법 1: 테이블 생성시 문자셋을 "utf8"로 지정하여 문제를 해결합니다.

예를 들어 다음 명령을 사용하여 "person"이라는 테이블을 생성하고 테이블에 있는 "name" 필드의 문자 집합을 "utf8"로 설정합니다.

CREATE TABLE person (
  id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  name VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  PRIMARY KEY (id)
) DEFAULT CHARSET=utf8;
로그인 후 복사

방법 2: MySQL 구성에서 기본 문자 설정 file "utf8"로 설정하면 모든 테이블이 기본적으로 이 문자 집합을 사용하게 됩니다.

MySQL 구성 파일에서 다음 두 줄의 코드를 찾습니다.

character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
로그인 후 복사

이 두 줄의 코드 주석을 제거하고 아래와 같이 값을 "utf8"로 변경합니다.

character-set-server=utf8
collation-server=utf8_general_ci
로그인 후 복사

기존 테이블의 경우 다음을 수행할 수 있습니다. pass 다음 명령은 테이블 구조의 문자 집합을 수정합니다.

ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
로그인 후 복사

Conclusion

명령줄 인터페이스에서든 MySQL 데이터베이스에서든 중국어 문자 집합 문제가 있습니다. 이런 종류의 문제가 발생하면 이 문서에서 제공하는 방법에 따라 해결하십시오. 문자 집합을 조정하면 중국어 데이터를 쉽게 쿼리하고 저장할 수 있으며, 한자 처리 시 발생하는 다양한 문제를 피할 수 있습니다.

위 내용은 mysql에서 중국어를 사용할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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