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修改代码页。完美解决乱码问题。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Das verstümmelte Linux-Chinesisch-Problem ist ein häufiges Problem bei der Verwendung chinesischer Zeichensätze und Kodierungen. Verstümmelte Zeichen können durch falsche Dateikodierungseinstellungen, nicht installiertes oder eingestelltes Systemgebietsschema, Konfigurationsfehler bei der Terminalanzeige usw. verursacht werden. In diesem Artikel werden mehrere gängige Problemumgehungen vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Überprüfen Sie die Dateikodierungseinstellung. Verwenden Sie den Dateibefehl im Terminal, um die Kodierung der Datei anzuzeigen: file-ifilename

Viele Benutzer stellten fest, dass ihre persönliche Software nach dem Upgrade des Win11-Systems verstümmelt war. Wie kann dieses Problem gelöst werden? Lassen Sie den Benutzer nun den Benutzern die Analyse von Problemen mit verstümmeltem Code in einigen Softwareprogrammen in Win11 sorgfältig vorstellen. Analyse verstümmelter Zeichen in mancher Software unter Win11 1. Klicken Sie auf das Suchfeld in der Taskleiste in der unteren linken Ecke und rufen Sie die Systemsteuerung auf, um sie zu öffnen. 3. Klicken Sie auf den Bereich. 5. Deaktivieren Sie dann das kleine Kästchen für die Beta-Version im Fenster und starten Sie schließlich den Computer neu, um das Problem zu beheben.

Analyse der Rolle und des Prinzips von nohup In Unix und Unix-ähnlichen Betriebssystemen ist nohup ein häufig verwendeter Befehl, mit dem Befehle im Hintergrund ausgeführt werden können. Selbst wenn der Benutzer die aktuelle Sitzung verlässt oder das Terminalfenster schließt, kann der Befehl ausgeführt werden werden weiterhin ausgeführt. In diesem Artikel werden wir die Funktion und das Prinzip des Nohup-Befehls im Detail analysieren. 1. Die Rolle von Nohup: Befehle im Hintergrund ausführen: Mit dem Befehl Nohup können wir Befehle mit langer Laufzeit weiterhin im Hintergrund ausführen lassen, ohne dass dies dadurch beeinträchtigt wird, dass der Benutzer die Terminalsitzung verlässt. Dies muss ausgeführt werden

Titel: Methoden und Codebeispiele zur Lösung des Problems verstümmelter chinesischer Daten, die in Oracle importiert werden. Beim Importieren chinesischer Daten in die Oracle-Datenbank treten häufig verstümmelte Zeichen auf. Dies kann auf falsche Datenbank-Zeichensatzeinstellungen oder Probleme bei der Kodierungskonvertierung zurückzuführen sein. . Um dieses Problem zu lösen, können wir einige Methoden anwenden, um sicherzustellen, dass die importierten chinesischen Daten korrekt angezeigt werden können. Im Folgenden finden Sie einige Lösungen und spezifische Codebeispiele: 1. Überprüfen Sie die Zeichensatzeinstellungen der Datenbank. In der Oracle-Datenbank sind die Zeichensatzeinstellungen

Tipps zum Umgang mit verstümmelten chinesischen Dateinamen in PHP Während des Entwicklungsprozesses stoßen wir häufig auf das Problem verstümmelter chinesischer Dateinamen, insbesondere bei der Verarbeitung von von Benutzern hochgeladenen Dateien. In PHP ist der korrekte Umgang mit verstümmelten Dateinamen ein häufiges und wichtiges Problem. In diesem Artikel werden einige Techniken zum Umgang mit verstümmelten chinesischen Dateinamen vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern zu helfen, diese Herausforderung besser zu bewältigen. Problembeschreibung: Wenn Benutzer Dateien hochladen, erscheinen chinesische Dateinamen manchmal verstümmelt. Dies liegt an unterschiedlichen Betriebssystemen und Browsern

Win11 ist das neueste Betriebssystem von Microsoft, aber einige Benutzer können beim Booten auf das Problem stoßen, dass verstümmelte Zeichen angezeigt werden, was sich auf die normale Verwendung des Systems auswirkt. In diesem Artikel werden einige Methoden zur Lösung dieses Problems vorgestellt. Methode 1: 1. Drücken Sie die Tastenkombination [Win+S] oder klicken Sie auf das [Suchsymbol] neben dem Startsymbol in der Taskleiste. Geben Sie in der geöffneten Windows-Suche [Systemsteuerung] in das Suchfeld ein und klicken Sie dann [Öffnen]. Die am besten passende Systemsteuerungsanwendung aus dem Systemsteuerungsfenster. Wechseln Sie in den Ansichtsmodus [Kategorie] und klicken Sie dann auf [Uhr und Zonenregion]. Wechseln Sie im Fenster zur Registerkarte [Verwaltung] und klicken Sie dann auf [Ändern] Regionale Systemeinstellungen]; 4. [Deaktivieren] Beta-Version: Unicode verwenden

So gehen Sie mit dem Problem verstümmelter Zeichen im Linux-Terminal um: Bei Verwendung des Linux-Systems wird der im Terminal angezeigte Text manchmal verstümmelt. Dies führt zu Unannehmlichkeiten bei der Verwendung des Terminals und muss rechtzeitig behoben werden. In diesem Artikel wird erläutert, wie mit einigen häufigen Problemen mit verstümmelten Linux-Terminals umgegangen werden kann, und es werden spezifische Codebeispiele bereitgestellt. Problem 1: Verstümmelte chinesische Zeichen auf dem Terminal. Verstümmelte chinesische Zeichen auf dem Terminal werden normalerweise durch falsche Zeichenkodierungseinstellungen auf dem Terminal verursacht. Wir können dieses Problem lösen, indem wir die Zeichenkodierungseinstellungen des Terminals ändern. #Sehen Sie sich das aktuelle Terminal an

Prinzipielle Analyse und praktische Erkundung des Struts-Frameworks. Als häufig verwendetes MVC-Framework in der JavaWeb-Entwicklung verfügt das Struts-Framework über gute Entwurfsmuster und Skalierbarkeit und wird häufig in der Anwendungsentwicklung auf Unternehmensebene verwendet. In diesem Artikel werden die Prinzipien des Struts-Frameworks analysiert und anhand tatsächlicher Codebeispiele untersucht, um den Lesern zu helfen, das Framework besser zu verstehen und anzuwenden. 1. Analyse der Prinzipien des Struts-Frameworks 1. MVC-Architektur Das Struts-Framework basiert auf MVC (Model-View-Con
