>  기사  >  데이터 베이스  >  mysql 중국어 쿼리 문자가 깨졌을 때 해결하는 방법

mysql 중국어 쿼리 문자가 깨졌을 때 해결하는 방법

WBOY
WBOY앞으로
2023-06-03 08:03:201738검색

MySQL 중국어 쿼리가 왜곡되는 이유

MySQL의 기본 문자 집합은 LATIN1이며 UTF-8이 더 널리 사용되는 인코딩 형식입니다. UTF-8 인코딩을 사용하여 중국어 데이터를 저장하지만 쿼리할 때 LATIN1 인코딩을 사용하면 쿼리 결과가 왜곡됩니다.

MySQL에서는 다음과 같은 방법으로 잘못된 중국어 쿼리 문제를 해결할 수 있습니다.

  1. 데이터베이스 인코딩과 테이블 인코딩을 확인하세요

먼저 데이터베이스와 테이블의 인코딩이 올바른지 확인해야 합니다. 데이터와 일치하는지 확인하십시오. 저장할 때 인코딩 형식이 일관됩니다. 다음 SQL 문을 통해 데이터베이스와 테이블의 인코딩 형식을 쿼리할 수 있습니다.

SHOW CREATE TABLE table_name;
SHOW VARIABLES LIKE 'character_set_database';

쿼리 결과에서 데이터베이스와 테이블의 인코딩 형식은 물론 서버와 클라이언트의 문자 집합을 볼 수 있으며, 현재 연결의 문자 집합이 일치하는지 여부.

  1. MySQL 연결 인코딩 설정

MySQL의 CONFIG 설정 문을 통해 MySQL 클라이언트 연결의 인코딩 형식을 UTF-8로 설정하여 데이터를 읽을 때 문자가 깨지는 것을 방지할 수 있습니다. MySQL 서버에 연결할 때 다음 명령을 사용할 수 있습니다.

mysql --default-character-set=utf8 -u username -p

이 명령은 MySQL 서버에 연결할 때 클라이언트 인코딩 형식을 자동으로 UTF-8로 설정하여 데이터를 읽을 때 잘못된 문자가 나타나지 않도록 합니다.

  1. MySQL 구성 파일 수정

MySQL 5.5 이상을 사용하는 경우 구성 파일 my.cnf에서 다음 설정을 통해 MySQL 서버의 인코딩 형식을 UTF-8로 설정할 수 있습니다.

[client]
default-character-set=utf8

[mysqld]
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci

이 구성 파일에서는 클라이언트와 서버의 기본 인코딩 형식을 UTF-8로 설정하여 데이터를 읽을 때 문자가 깨지는 일이 없도록 할 수 있습니다.

  1. MySQL 필드 인코딩을 UTF-8로 설정

데이터베이스에 이미 잘못된 인코딩 형식을 사용하는 일부 데이터가 있는 경우 다음을 통해 데이터베이스의 모든 필드 인코딩 형식을 UTF-8로 설정할 수 있습니다. UTF-8 명령:

ALTER DATABASE database_name CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

위 명령은 데이터베이스와 테이블의 모든 인코딩 형식을 UTF-8로 수정하여 데이터를 읽을 때 잘못된 문자가 나타나지 않도록 합니다.

실제 사용에서는 특정 상황에 따라 다양한 솔루션을 선택할 수 있습니다. 중국어 쿼리 문자 왜곡 문제를 해결할 때 다양한 문자 집합 간의 변환이 효율성을 소모한다는 사실에 주의할 필요가 있으므로 효율성과 정확성 사이에서 절충을 해야 하며 이를 실제 비즈니스 요구에 기반해야 합니다. 가장 적절한 솔루션을 선택하십시오.

위 내용은 mysql 중국어 쿼리 문자가 깨졌을 때 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제