MySQL 튜토리얼의 중국어 데이터 문제
이 글은 주로 mysql 중국어 데이터 관련 이슈를 소개합니다. 도움이 필요한 친구들에게 도움이 되었으면 좋겠습니다!
추천 참고 튜토리얼: "mysql 튜토리얼"
중국어 데이터 문제의 본질은 문자 집합의 문제입니다.
컴퓨터는 바이너리 데이터만 인식하고 인간은 문자(기호)를 인식하는 경향이 더 높기 때문에 바이너리와 문자 간의 대응이 필요하며, 이는 문자 집합입니다.
MySQL 데이터베이스의 클라이언트를 통해 서버에 중국어 데이터를 삽입할 때 실패할 수 있습니다. 이유는 클라이언트와 서버의 문자 집합 설정이 다르기 때문일 수 있습니다. 예:
문자 집합 클라이언트의
gbk
이면 한자 하나가 2바이트에 해당합니다.gbk
,则一个中文字符,对应两个字节;服务器的字符集为
utf8
,则一个中文字符,对应三个字节。
这样显然会在编码转换的过程中出现问题,从而导致插入中文数据失败。
由于所有的数据库服务器表现的一些特性都是通过服务器端的变量来保持的,因此系统会先读取自己的变量,看看具体的表现形式。这样的话,咱们就可以通过以下语句查看服务器到底识别哪些字符集:
-- 查看服务器识别的全部字符集show character set;
通过以上查询,咱们会发现:服务器是万能的,其支持所有字符集。
既然服务器支持这么多字符集,总会有一种是服务器默认的和客户端打交道的字符集。因此,咱们可以通过以下语句查看服务器默认的对外处理的字符集:
-- 查看服务器默认的对外处理的字符集show variables like &#MySQL 튜토리얼의 중국어 데이터 문제9;character_set%&#MySQL 튜토리얼의 중국어 데이터 문제9;;
标注MySQL 튜토리얼의 중국어 데이터 문제:服务器默认的客户端传来的数据字符集为
utf8
;标注2:连接层字符集为
utf8
;标注MySQL 튜토리얼의 중국어 데이터 문제:当前数据库的字符集为
utf8
;标注MySQL 튜토리얼의 중국어 데이터 문제:服务器默认的对外处理的字符集
utf8
.
通过以上查询,咱们会发现:服务器默认的对外处理的字符集是utf8
.
那么反过来,咱们在通过客户端的属性查看客户端支持的字符集:
显然,咱们已经找到了问题的根源,确实是:客户端支持的字符集为gbk
,而服务器默认的对外处理的字符集为utf8
,因此产生矛盾。
既然问题已经找到了,那么解决方案就是:修改服务器默认接收的字符集为gbk
.
-- 修改服务器默认接收的字符集为 GBK(不区分大小写)set character_set_client = gbk;
这样的话,咱们再插入中文数据的时候,就会插入成功啦!But,在咱们查看数据的时候,又发现了一个问题,就是之前咱们插入的中文数据显示乱码啦!不过这也正常,因为查询的时候,数据的来源是服务器(utf8
),解析数据的是客户端,而客户端仅识别gbk
格式的数据,显示乱码也就在意料之中啦!
因此,解决方案就是:修改服务器给客户端的数据字符集为gbk
.
-- 修改服务器给客户端的数据字符集为 GBK(不区分大小写)set character_set_results = gbk;
如上图所示,向服务器插入中文数据的问题已经解决啦!
此外,咱们之前使用的 SQL 语句:
-- 修改的只是会话级别,即当前客户端当次连接有效,关闭后失效set 变量 = 值;
这样的话,每当咱们重启客户端的时候,都要依次重新进行设置,比较麻烦,因此咱们可以使用快捷的设置方式,即:
set names 字符集;
例如,
/** * 恒等于 set character_set_client = gbk; * 恒等于 set character_set_results = gbk; * 恒等于 set character_set_connection = gbk; */set names gbk;
表示上述一条语句,将同时改变三个变量的值。其中,connection
为连接层,是字符集转换的中间者,如果其和client
和results
서버의 문자 세트가 utf8
이면 한자 하나가 해당합니다. MySQL 튜토리얼의 중국어 데이터 문제바이트로.

utf8
입니다. 🎜🎜🎜참고 2: 문자 연결 레이어 세트는 🎜🎜🎜참고 MySQL 튜토리얼의 중국어 데이터 문제: 현재 데이터베이스의 문자 세트는 🎜🎜🎜참고 MySQL 튜토리얼의 중국어 데이터 문제: 서버 외부 처리를 위한 기본 문자 집합은 utf8
입니다.🎜🎜위 쿼리를 통해 다음을 찾을 수 있습니다. 🎜서버에 의한 외부 처리를 위한 기본 문자 집합 is utf8 code>🎜.🎜🎜그런 다음 클라이언트 속성을 통해 클라이언트가 지원하는 문자 집합을 확인합니다.🎜🎜<img src="https://img.php.cn/upload%20/article/000/000/020%20/6f99220cMySQL%20%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC%EC%9D%98%20%EC%A4%91%EA%B5%AD%EC%96%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EB%AC%B8%EC%A0%9CMySQL%20%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC%EC%9D%98%20%EC%A4%91%EA%B5%AD%EC%96%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EB%AC%B8%EC%A0%9Cb0c0b09ee2MySQL%20%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC%EC%9D%98%20%EC%A4%91%EA%B5%AD%EC%96%B4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EB%AC%B8%EC%A0%9C8d8820ff026-2.png" alt="MySQL 튜토리얼의 중국어 데이터 문제" title="">🎜🎜분명히 우리는 문제의 원인을 찾았습니다. 클라이언트는 <code>gbk
이고, 외부 처리를 위한 서버의 기본 문자 세트는 utf8
이므로 모순이 있습니다. 🎜🎜🎜문제가 발견되었으므로 해결책은 다음과 같습니다. 🎜서버에서 수신한 기본 문자 집합을 gbk
🎜로 수정합니다.🎜rrreee🎜이 경우 중국어 데이터를 삽입하면 삽입됩니다 성공! 그런데 데이터를 확인해 보니 또 다른 문제점이 발견되었습니다. 바로, 이전에 삽입했던 중국어 데이터가 왜곡되어 있다는 점이었습니다! 하지만 이는 정상적인 현상입니다. 쿼리할 때 데이터의 소스가 서버(utf8
)이고 클라이언트가 데이터를 구문 분석하며 클라이언트는 gbk
의 데이터만 인식하기 때문입니다. > 형식이 왜곡되어 표시될 것으로 예상됩니다! 🎜🎜그래서 해결책은 다음과 같습니다. 🎜서버에서 클라이언트에 제공하는 데이터 문자 집합을 gbk
🎜.🎜rrreee🎜
connection
은 연결 레이어이며 client
및 results
의 문자 집합과 일치하는 경우 문자 집합 변환을 위한 중개자입니다. , 더 효율적일 것입니다. 높거나 일관성이 없는지는 중요하지 않습니다. 🎜🎜 🎜위 내용은 MySQL 튜토리얼의 중국어 데이터 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











InnoDB의 전체 텍스트 검색 기능은 매우 강력하여 데이터베이스 쿼리 효율성과 대량의 텍스트 데이터를 처리 할 수있는 능력을 크게 향상시킬 수 있습니다. 1) InnoDB는 기본 및 고급 검색 쿼리를 지원하는 역 색인화를 통해 전체 텍스트 검색을 구현합니다. 2) 매치 및 키워드를 사용하여 검색, 부울 모드 및 문구 검색을 지원합니다. 3) 최적화 방법에는 워드 세분화 기술 사용, 인덱스의 주기적 재건 및 캐시 크기 조정, 성능과 정확도를 향상시키는 것이 포함됩니다.

이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

전체 테이블 스캔은 MySQL에서 인덱스를 사용하는 것보다 빠를 수 있습니다. 특정 사례는 다음과 같습니다. 1) 데이터 볼륨은 작습니다. 2) 쿼리가 많은 양의 데이터를 반환 할 때; 3) 인덱스 열이 매우 선택적이지 않은 경우; 4) 복잡한 쿼리시. 쿼리 계획을 분석하고 인덱스 최적화, 과도한 인덱스를 피하고 정기적으로 테이블을 유지 관리하면 실제 응용 프로그램에서 최상의 선택을 할 수 있습니다.

예, MySQL은 Windows 7에 설치 될 수 있으며 Microsoft는 Windows 7 지원을 중단했지만 MySQL은 여전히 호환됩니다. 그러나 설치 프로세스 중에 다음 지점이 표시되어야합니다. Windows 용 MySQL 설치 프로그램을 다운로드하십시오. MySQL의 적절한 버전 (커뮤니티 또는 기업)을 선택하십시오. 설치 프로세스 중에 적절한 설치 디렉토리 및 문자를 선택하십시오. 루트 사용자 비밀번호를 설정하고 올바르게 유지하십시오. 테스트를 위해 데이터베이스에 연결하십시오. Windows 7의 호환성 및 보안 문제에 주목하고 지원되는 운영 체제로 업그레이드하는 것이 좋습니다.

기사는 인증서 생성 및 확인을 포함하여 MySQL에 대한 SSL/TLS 암호화 구성에 대해 설명합니다. 주요 문제는 자체 서명 인증서의 보안 영향을 사용하는 것입니다. [문자 수 : 159]

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].

기사는 MySQL에서 파티셔닝, 샤딩, 인덱싱 및 쿼리 최적화를 포함하여 대규모 데이터 세트를 처리하기위한 전략에 대해 설명합니다.

클러스터 인덱스와 비 클러스터 인덱스의 차이점은 1. 클러스터 된 인덱스는 인덱스 구조에 데이터 행을 저장하며, 이는 기본 키 및 범위별로 쿼리에 적합합니다. 2. 클러스터되지 않은 인덱스는 인덱스 키 값과 포인터를 데이터 행으로 저장하며 비 예산 키 열 쿼리에 적합합니다.
