MySql中SETNAMESutf8详解(乱码原理)_MySQL
不多说,先上图
分析:
set names utf8之前,
character_set_client | gbk
character_set_connection| gbk
character_set_results | gbk
set names utf8之后,
character_set_client | utf8
character_set_connection| utf8
character_set_results | utf8
关于字符集可参照mysql中文手册
地址:http://dev.mysql.com/doc/refman/5.1/zh/charset.html#charset-connection
以下是部分摘录:
在客户端和服务器的连接处理中也涉及了字符集和校对规则变量。每一个客户端有一个连接相关的字符集和校对规则变量。
考虑什么是一个“连接”:它是连接服务器时所作的事情。客户端发送SQL语句,例如查询,通过连接发送到服务器。服务器通过连接发送响应给客户端,例如结果集。对于客户端连接,这样会导致一些关于连接的字符集和校对规则的问题,这些问题均能够通过系统变量来解决:
· 当查询离开客户端后,在查询中使用哪种字符集?
服务器使用character_set_client变量作为客户端发送的查询中使用的字符集。
· 服务器接收到查询后应该转换为哪种字符集?
转换时,服务器使用character_set_connection和collation_connection系统变量。它将客户端发送的查询从character_set_client系统变量转换到character_set_connection(除非字符串文字具有象_latin1或_utf8的引介词)。collation_connection对比较文字字符串是重要的。对于列值的字符串比较,它不重要,因为列具有更高的校对规则优先级。
· 服务器发送结果集或返回错误信息到客户端之前应该转换为哪种字符集?
character_set_results变量指示服务器返回查询结果到客户端使用的字符集。包括结果数据,例如列值和结果元数据(如列名)。
你能够调整这些变量的设置,或可以依赖默认值(这样,你可以跳过本章)。
有两个语句影响连接字符集:
SET NAMES 'charset_name'
SET CHARACTERSETcharset_name
SET NAMES 'x'语句与这三个语句等价:
mysql>SETcharacter_set_client = x;
mysql>SETcharacter_set_results = x;
mysql>SETcharacter_set_connection = x;
所以说:
set names utf8指定了客户端和服务器之间传递字符的编码规则为UTF8。
修改MySql默认编码
MySql默认编码是Latin1,不支持中文,要想修改默认编码,需要修改my.ini文件
[client]增加default-character-set=utf8
[mysql]增加default-character-set=utf8
[mysqld]增加
character_set_server=utf8
init_connect='SET NAMES utf8'
cmd下操作mysql乱码需要注意cmd编码
查看当前代码页,如果当前代码页是GBK那么需要set names GBK才可以保证不乱码。
chcp 65001/936修改代码页。完美解决乱码问题。

핫 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)

뜨거운 주제











Linux 중국어 왜곡 문제는 중국어 문자 세트 및 인코딩을 사용할 때 흔히 발생하는 문제입니다. 잘못된 파일 인코딩 설정, 시스템 로케일이 설치 또는 설정되지 않음, 터미널 디스플레이 구성 오류 등으로 인해 문자가 깨질 수 있습니다. 이 문서에서는 몇 가지 일반적인 해결 방법을 소개하고 특정 코드 예제를 제공합니다. 1. 파일 인코딩 설정을 확인하십시오. 파일 인코딩을 보려면 터미널에서 file 명령을 사용하십시오. 출력에 "charset"이 있는 경우.

많은 사용자들이 win11 시스템을 업그레이드한 후 개인 소프트웨어가 깨졌음을 발견했습니다. 그렇다면 이 문제를 해결하는 방법은 무엇입니까? 편집자는 Win11의 일부 소프트웨어에서 잘못된 코드 문제 분석을 사용자에게 주의 깊게 소개하도록 하십시오. Win11의 일부 소프트웨어에서 깨진 문자 분석 1. 왼쪽 하단에 있는 작업 표시줄의 검색 상자를 클릭하고 제어판을 입력하여 엽니다. 3. 해당 지역을 클릭하세요. 5. 그런 다음 창에서 베타 버전에 대한 작은 상자를 선택 취소하고 마지막으로 컴퓨터를 다시 시작하여 문제를 해결합니다.

nohup의 역할과 원리 분석 nohup은 유닉스 및 유닉스 계열 운영체제에서 사용자가 현재 세션을 종료하거나 터미널 창을 닫아도 백그라운드에서 명령을 실행하는 데 일반적으로 사용되는 명령입니다. 아직도 계속 처형되고 있다. 이번 글에서는 nohup 명령의 기능과 원리를 자세히 분석해보겠습니다. 1. nohup의 역할: 백그라운드에서 명령 실행: nohup 명령을 통해 사용자가 터미널 세션을 종료해도 영향을 받지 않고 장기 실행 명령이 백그라운드에서 계속 실행되도록 할 수 있습니다. 이건 실행해야 해

제목: 중국어 데이터를 Oracle로 가져올 때 문자가 깨지는 문제를 해결하기 위한 방법 및 코드 예제. 중국어 데이터를 Oracle 데이터베이스로 가져올 때 잘못된 문자 세트 설정이나 가져오기 중 인코딩 변환 문제로 인해 문자가 깨지는 경우가 종종 있습니다. 프로세스. . 이 문제를 해결하기 위해 가져온 중국어 데이터가 올바르게 표시될 수 있도록 몇 가지 방법을 취할 수 있습니다. 다음은 몇 가지 해결 방법과 구체적인 코드 예입니다. 1. 데이터베이스 문자 집합 설정을 확인합니다. Oracle 데이터베이스에서 문자 집합 설정은 다음과 같습니다.

PHP에서 잘못된 중국어 파일 이름을 처리하기 위한 팁 개발 과정에서 특히 사용자가 업로드한 파일을 처리할 때 중국어 파일 이름이 깨지는 문제에 자주 직면합니다. PHP에서는 왜곡된 파일 이름을 올바르게 처리하는 방법이 일반적이고 중요한 문제입니다. 이 기사에서는 왜곡된 중국어 파일 이름을 처리하는 몇 가지 기술을 소개하고 독자가 이 문제를 더 잘 처리하는 데 도움이 되는 특정 코드 예제를 제공합니다. 문제 설명: 사용자가 파일을 업로드할 때 중국어 파일 이름이 왜곡되어 나타나는 경우가 있습니다. 운영체제와 브라우저가 다르기 때문입니다.

Win11은 Microsoft의 최신 운영 체제이지만 일부 사용자는 부팅할 때 잘못된 문자가 표시되는 문제에 직면할 수 있으며 이는 시스템의 정상적인 사용에 영향을 미칩니다. 이 문서에서는 이 문제를 해결하는 몇 가지 방법을 소개합니다. 방법 1: 1. [Win+S] 키 조합을 누르거나, 열린 Windows 검색에서 검색 상자에 [제어판]을 입력한 후, 작업 표시줄의 시작 아이콘 옆에 있는 [검색 아이콘]을 클릭합니다. 2. 제어판 창에서 [범주] 보기 모드로 전환한 다음 [시계 및 영역-지역]을 클릭합니다. 관리] 탭을 클릭한 후 [변경] 시스템 지역 설정]을 클릭합니다. 4. [선택 취소] 베타 버전: 유니코드 사용

Linux 터미널에서 문자가 깨지는 문제를 해결하는 방법 Linux 시스템을 사용할 때 터미널에 표시되는 텍스트가 깨져서 터미널을 사용할 때 불편을 겪게 되며 적절한 시기에 처리해야 합니다. 이 기사에서는 일반적인 Linux 터미널 왜곡 문제를 처리하는 방법을 소개하고 특정 코드 예제를 제공합니다. 문제 1: 터미널에서 한자가 깨졌습니다. 터미널에서 한자가 깨졌을 경우 일반적으로 터미널의 잘못된 문자 인코딩 설정으로 인해 발생합니다. 터미널의 문자 인코딩 설정을 수정하여 이 문제를 해결할 수 있습니다. #현재 터미널 보기

Struts 프레임워크의 원리 분석 및 실제 탐색 JavaWeb 개발에서 일반적으로 사용되는 MVC 프레임워크인 Struts 프레임워크는 우수한 디자인 패턴과 확장성을 가지며 엔터프라이즈 수준 애플리케이션 개발에 널리 사용됩니다. 이 기사에서는 Struts 프레임워크의 원리를 분석하고 실제 코드 예제를 통해 이를 탐색하여 독자가 프레임워크를 더 잘 이해하고 적용할 수 있도록 돕습니다. 1. Struts 프레임워크의 원리 분석 1. MVC 아키텍처 Struts 프레임워크는 MVC(Model-View-Con)를 기반으로 합니다.
