Mysql 인코딩 방법 항목 보기
1.
데이터베이스의 문자 집합 보기
'character_set_%'와 같은 변수 표시
출력 :
+---------------+---------+
| 변수_이름 |
+-------------+-------+
| 라틴어1 || 문자_데이터베이스 |
| >| 문자 세트_서버 |
| 문자 세트_시스템 |
+--------- --- ------+---------+
다음 코딩 테이블과 결합하여 현재 데이터베이스 시스템의 코딩을 찾습니다.
latin1_bin
서유럽(다국어), 바이너리
바이너리
바이너리
위와 같은 결과입니다. 리눅스 환경에서 본 인코딩을 모아봤습니다. 이제 WIN 플랫폼에서 다음과 같은 인코딩 세트 결과를 확인하고 있습니다.
+---------------+ ----- ---+
| 변수_이름 |
+---------- ---+- -------+
| Character_set_connection |
| 🎜>| 캐릭터 세트_파일 시스템 |
| 캐릭터 세트_서버 |
| ----- ------+---------+
왜 불일치가 있나요? 내 컴퓨터에 표시된 UTF-8은 실제로 LINUX의
입니다. 2.
명령을 통해 인코딩을 수정하고 데이터베이스의 문자 집합을 지정합니다. .
mysql>create 데이터베이스 mydb 문자 세트 utf-8;#인코딩을 직접 지정
명령을 통해 직접 수정
set Character_set_client=utf8;
set Character_set_connection=utf8;
set Character_set_database=utf8;
set Character_set_results=utf8;
set Character_set_server=utf8;
수정 후 쿼리
'character_set_%'와 같은 변수 표시;
+---------------+--- - ----+
| 변수_이름 | 값 |
+------------- + --------+
| char_set_connection | utf8 |
| | 바이너리 |
| 캐릭터 세트_서버 |
| 캐릭터 세트_시스템 |
+------ ------+---------+
모든 결과가 UTF-8로 조정 및 수정되었습니다!
수정 후, address_address에서 *를 선택하는 것이 깨졌습니다. Django도 깨졌습니다
3. 데이터 가져오기 및 내보내기의 깨짐 문제 해결
#create 데이터베이스 nginxdjango;
# nginxdjango 사용;
# 'character_set_%'와 같은 변수를 표시합니다.
#실제로 출력되는 내용은 다음과 같습니다
+----------------- ---- ----+---------+
| 변수_이름 |
+------------ --- ---------+---------+
| 문자_세트_클라이언트 | 라틴1 |
| 문자_세트_연결 |
| 문자 세트_데이터베이스 |
| 문자 세트_결과 | 라틴1 |
| 🎜>
+---------------+---------+는 아직 라틴어로 인코딩되었습니다. 알겠습니다. 인코딩을 설정했습니다. set Character_set_client=utf8;set Character_set_connection=utf8;set Character_set_database=utf8;set Character_set_results=utf8; >set Character_set_server=utf8;
인코딩 형식을 다시 확인하세요. +------ ----- ---+---------+
| 변수_이름 값 |
+------------- ------ ------+--------+
| 문자_세트_연결 |
| 🎜>
| 캐릭터 세트_파일 시스템 || 캐릭터 세트_결과 ||| 문자 세트_시스템 |
+-------------+------- +
이제
source /python/django/sql/nginxdjango.sql;
에서 데이터를 가져옵니다. nginxdjango.sql의 인코딩도 utf-8 형식입니다!
Import in. 데이터베이스는 여전히 깨져 있지만 프로그램은 정상적으로 실행됩니다!
MySQL 문자 세트 인코딩 유형
gb2312_chinese_ci와 gbk_chinese_ci 및 gb2312_bin, gbk_bin의 차이점
gb2312_chinese_CI: 중국어 간체만 지원합니다
gb2312_BIN : 그리고 gb2312_bin은 gb2312_chinese_ci의 하위 집합이라고 할 수 있습니다.
gb2312_BIN은 이진 저장소입니다. 대소문자를 구분하는 데이터베이스 인코딩 형식은 다른 의미를 갖습니다.
gbk_chinese_CI는 단순화를 지원합니다. 중국어 중국어 및 중국어 번체
gbk_bin은 gb2312_BIN과 설명이 같고 gbk_chinese_CI에 해당합니다
PS: GBK에는 중국어 간체와 중국어 번체의 두 가지 유형이 있습니다
새 기사: 2010-03 -09
MySQL에는 서버 수준, 데이터베이스 수준, 테이블 수준의 네 가지 기본 문자 집합 설정 수준이 있습니다. 마지막 단계는 필드 수준 문자 집합 설정입니다. 처음 세 개는 기본 설정이며 필드가 결국 이 문자 집합 설정을 사용한다는 의미는 아닙니다. 따라서 show create table table을 사용하거나 tableName의 전체 필드를 표시하여 현재 테이블에 있는 필드의 문자 집합 설정을 확인하는 것이 좋습니다.
MySQL의 연결 환경에 대한 문자 세트 설정에는 클라이언트, 연결, 결과가 포함됩니다. 이러한 매개변수를 통해 MySQL은 클라이언트 도구가 사용하는 문자 세트와 결과 세트가 되어야 하는 문자 세트를 알 수 있습니다. 이러한 방식으로 MySQL은 필요한 변환을 수행합니다. 이러한 매개변수가 올바르지 않으면 전송 프로세스 중에 자연스럽게 문자열 변환 오류가 발생합니다. 기본적으로 잘못된 코드의 99%는 이것에 의해 발생합니다.
1. 데이터베이스 테이블의 필드에 대한 문자 집합 설정. show create table TableName 또는 show full columns from tableName
mysql> show create table t1;
mysql> show full columns from t1; 3. 데이터베이스의 인코딩 형식 보기
show create Database test;
출력: CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */
2. 현재 연결 시스템 매개변수는 'char%'와 같은 변수를 표시합니다.
mysql> 🎜>
1. 중국어, 표에 있는 이 필드의 문자 집합이 중국어와 호환되는지 확인하세요.
big5 중국어 번체
GB2312 중국어 간체
gbk | GBK 중국어 간체
UTF-8 유니코드
데이터베이스의 문자 집합 수정
mysql>mydb 사용
mysql>alter Database mydb 문자 집합 utf-8;
데이터베이스 생성 데이터베이스의 문자 집합을 지정
Mysql>create 데이터베이스 mydb 문자 집합 utf-8;
2010-05-02 새로 추가됨
'character_set_%'와 같은 변수 표시 '; 조회된 여러 항목 중 이 세 가지는 클라이언트의 영향을 받는 항목입니다
character_set_client
character_set_connection
character_set_results ~ 설정할 이름 gbk를 설정하세요! 단지 현재 연결된 클라이언트의 인코딩이 데이터베이스 서버 자체의 인코딩에 영향을 미치지 않는다는 의미일 뿐입니다