>  기사  >  데이터 베이스  >  SQL 명령 쿼리에서 잘못된 문자에 대한 솔루션에 대한 자세한 설명

SQL 명령 쿼리에서 잘못된 문자에 대한 솔루션에 대한 자세한 설명

韦小宝
韦小宝원래의
2018-03-14 15:52:368366검색

이 글에서는 sql 명령 query에서 잘못된 코드에 대한 해결 방법을 설명합니다. sql 명령 쿼리에서 잘못된 코드에 대한 해결 방법을 모르거나 sql 명령 쿼리를 살펴보겠습니다. 이 기사에서는 헛소리는 그만하고 본론으로 들어가겠습니다. MySQL에는 다음과 같은 중국어 문자가 깨져 있습니다. 요점:
1. 서버 자체 설정 문제, 예를 들어 latin1의 언어 설정 문제가

2.table(문자 및 데이터 정렬 포함)에서 계속 발생합니다.

3 .클라이언트 프로그램(php 등)의 연결 언어 설정 문제


utf8 사용을 적극 권장합니다. utf8은 전 세계 모든 문자와 호환됩니다.

1단계: mysql이 설치된 디렉토리를 찾아 my.ini를 찾습니다. file;


2단계: 메모장을 사용하여 my.ini 파일을 엽니다.

여기를 찾아 기본 문자 집합이 utf8인지 확인하세요. 그렇지 않은 경우 utf8로 변경하세요. (이전 버전에는 이 문장이 없어서 그냥 추가해도 됩니다!)


# MySQL 클라이언트 라이브러리 초기화.

[클라이언트]

port=3306

[mysql]

기본값-문자-설정=utf8

3단계: mysql 데이터베이스에 입력cmd: '%char%'와 같은 변수 표시;

4단계: 원본 데이터베이스의 인코딩 방법 변경:

설정character_set_client=gb2312;

1

2

3

4

설정 character_set_database=utf8;set character_set_database=utf8;

set character_set_server=utf8;

set character_set_client=gb2312;

set character_set_connection=gb2312;

설정 character_set_server=utf8;
설정 character_set_connection=gb2312;🎜🎜🎜🎜🎜

5단계: 인코딩 방법 변경:

6단계: 쿼리 결과 보기:

6단계: 중국어 데이터를 삽입해 보세요! 좋아요! 삽입 가능해요!

7단계: 표에서 *를 선택할 때 왜곡된 문자를 해결합니다. 실제로는 네 번째와 일곱 번째 부분만 사용됩니다.

위의 인코딩 방법을 변경합니다.

set Character_set_results=gb2312; !

GBK, GB2312, UTF8 정보

UTF-8: 유니코드 변환 형식-8비트, BOM은 허용되지만 일반적으로 BOM은 포함되지 않습니다. 국제 문자를 해결하는 데 사용되는 멀티바이트 인코딩입니다. 영어의 경우 8비트(즉, 1바이트)를 사용하고 중국어의 경우 24비트(3바이트)를 사용합니다. UTF-8은 전 세계 모든 국가에서 사용되는 문자를 포함하며 국제적인 인코딩이며 다양한 용도로 사용됩니다. UTF-8로 인코딩된 텍스트는 UTF8문자 세트를 지원하는 다양한 국가의 브라우저에 표시될 수 있습니다. 예를 들어 UTF8 인코딩인 경우 외국인의 영어 IE에서도 중국어가 표시될 수 있으므로 IE의 중국어 지원 패키지를 다운로드할 필요가 없습니다.

GBK는 국가 표준 GB2312를 기반으로 한 표준이며 GB2312와 호환되도록 확장되었습니다. GBK의 텍스트 인코딩은 더블바이트로 표현됩니다. 즉, 한자와 영어 문자 모두 더블바이트로 표현됩니다. 한자를 구별하기 위해 최상위 비트가 1로 설정됩니다. GBK는 모든 중국어 문자를 포함하며 UTF8보다 다목적성이 떨어지지만 UTF8은 GBD보다 더 큰 데이터베이스를 차지합니다.

GBK, GB2312 등은 유니코드 인코딩을 통해 UTF8로 변환되어야 합니다.
GBK, GB2312--Unicode--UTF8
UTF8--Unicode--GBK, GB2312

웹사이트나 포럼의 경우 영어 문자의 경우 공간 절약을 위해 UTF-8을 사용하는 것이 좋습니다. 그러나 현재 많은 포럼 플러그인은 일반적으로 GBK만 지원합니다.

GB2312는 GBK의 하위 집합이고, GBK는 GB18030의 하위 집합입니다.
GBK는 중국어, 일본어, 한국어 문자를 포함하는 큰 문자 집합입니다.
중국어 웹사이트인 경우 GB2312를 권장합니다. GBK는 때때로 여전히 문제가 있습니다
In 모든 잘못된 코드 문제를 방지하려면 UTF-8을 사용하면 향후 국제화를 지원하는 것이 매우 편리할 것입니다.
UTF-8은 대부분의 텍스트 인코딩을 포함하는 큰 문자 집합으로 간주할 수 있습니다.
UTF-8을 사용하면 다른 지역(예: 홍콩, 대만)의 사용자가 중국어 간체 지원을 설치하지 않고도 문자가 깨지지 않고 정상적으로 텍스트를 볼 수 있다는 이점이 있습니다.

gb2312는 중국어 간체 코드입니다.
gbk는 중국어 간체 및 중국어 번체를 지원합니다.
big5는 중국어 번체를 지원합니다.
utf-8은 거의 모든 문자를 지원합니다.

먼저 문자가 깨져 있는 상황을 분석합니다.

MySQL에 관련된 여러 문자 집합

character-set-server/default-character-set: 기본적으로 사용되는 서버 문자 집합입니다.
character-set-database: 데이터베이스 문자 집합입니다.
character-set-table: 데이터베이스 테이블 문자 집합입니다.
우선순위가 순차적으로 증가합니다. 따라서 일반적인 상황에서는 캐릭터셋-서버만 설정하면 되며, 데이터베이스 및 테이블 생성 시에는 캐릭터셋을 지정하지 않는 방식으로 캐릭터셋-서버 캐릭터셋을 일률적으로 사용하게 된다. character-set-client: 클라이언트의 문자 집합입니다. 클라이언트 기본 문자 집합입니다. 클라이언트가 서버에 요청을 보낼 때 요청은 이 문자 집합으로 인코딩됩니다. character-set-results: 결과 문자 집합입니다. 서버가 결과나 정보를 클라이언트에 반환할 때 결과는 이 문자 집합으로 인코딩됩니다.
클라이언트 측에서 문자 세트 결과가 정의되지 않은 경우 문자 세트 클라이언트 문자 세트가 기본 문자 세트로 사용됩니다. 따라서 문자 세트-클라이언트 문자 세트만 설정하면 됩니다.

중국어를 처리하려면 Character-set-server와 Character-set-client를 모두 GB2312로 설정하면 됩니다. 동시에 여러 언어를 처리하려면 UTF8로 설정하세요.

MySQL의 중국어 문제에 대하여

문자 깨짐을 해결하는 방법은 SQL 문을 실행하기 전에 MySQL의 다음 세 가지 시스템 매개 변수를 서버 문자 집합 char-set-server와 동일한 문자 집합으로 설정하는 것입니다.

character_set_client: 클라이언트의 문자 집합입니다.

character_set_results: 결과 문자 집합입니다.
character_set_connection: 연결 문자 집합입니다.
MySQL에 명령문을 전송하여 세 가지 시스템 매개변수를 설정합니다. set names gb2312


위 내용은 이 기사의 모든 내용입니다. 이에 대해 잘 모르는 경우 양쪽을 직접 구현하면 쉬울 것입니다. 마스터하다!



관련 권장 사항:
sql 쿼리배열에서 in을 사용하는 방법

데이터베이스 코드가 데이터베이스를 잠그는 것을 방지하는 SQL 쿼리 속도 향상 팁

MySQL 쿼리 문 복잡한 쿼리

위 내용은 SQL 명령 쿼리에서 잘못된 문자에 대한 솔루션에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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