Heim  >  Artikel  >  Datenbank  >  Detaillierte Erklärung der Lösung für verstümmelte Zeichen in SQL-Befehlsabfragen

Detaillierte Erklärung der Lösung für verstümmelte Zeichen in SQL-Befehlsabfragen

韦小宝
韦小宝Original
2018-03-14 15:52:368366Durchsuche

Dieser Artikel beschreibt die Lösung für den verstümmelten Code in der SQL-Befehlsabfrage Wenn Sie die Lösung für den verstümmelten Code in der SQL-Befehlsabfrage nicht kennen oder an der Lösung für den verstümmelten Code interessiert sind Code in der SQL-Befehlsabfrage, dann Schauen wir uns diesen Artikel gemeinsam an. Okay, kommen wir ohne weitere Umschweife zum Punkt



MySQL-Befehlszeilenabfrage Lösung für verstümmelte Zeichen:


Der Grund, warum MySQL chinesische verstümmelte Zeichen haben wird, ist nichts weiter als die folgenden Punkte:

1. Der Server selbst hat Probleme behoben, z. B. bleibt er in Latein hängen1

2. Problem mit der Einstellung der Tabellensprache (einschließlich Zeichen und Sortierung)

3 . Verbindungsspracheneinstellungsproblem des Client-Programms (z. B. PHP)

Es wird dringend empfohlen, utf8 zu verwenden, utf8 ist mit allen Zeichen der Welt kompatibel

Schritt 1: Suchen Sie das Verzeichnis, in dem sich MySQL befindet ist installiert und finden Sie die my.ini-Datei.

Schritt 2: Öffnen Sie die my.ini-Datei mit Notepad.

Suchen Sie diesen Ort und prüfen Sie, ob Der Standardzeichensatz ist utf8. Wenn nicht, ändern Sie ihn einfach in utf8! (Frühere Versionen haben diesen Satz möglicherweise nicht, fügen Sie ihn einfach direkt hinzu!)






# MySQL client library initialization.

[client]

port=3306

[mysql]

default-character-set=utf8

# Initialisierung der MySQL-Clientbibliothek.

[client]

port=3306

[mysql]

default-Zeichen-set=utf8

第三步:在mysql数据库cmd中输入:show variables like'%char%';

第四步:改变原有数据库的编码方式:

1

1

2

3

4

set character_set_database=utf8;

set character_set_server=utf8;

set character_set_client=gb2312;

set character_set_connection=gb2312;

2

3

4

set character_set_database=utf8;

set character_set_server=utf8;

set character_set_client=gb2312;

set character_set_connection=gb2312;

Schritt 5: Geänderte Kodierungsmethode:

Schritt 6: Abfrageergebnisse anzeigen:

Schritt 6: Versuchen Sie, chinesische Daten einzufügen! OK! Es kann eingefügt werden!

Schritt 7: Lösen Sie den verstümmelten Code, wenn Sie * aus der Tabelle auswählen. Tatsächlich werden nur der vierte und siebte Teil verwendet.

Verwenden Sie die obige Codierungsmethode Änderung:

set Character_set_results=gb2312; und es wird normal angezeigt!

Über GBK, GB2312, UTF8

UTF-8: Unicode Transformation Format-8bit, BOM ist erlaubt, aber normalerweise nicht Enthält Stückliste. Es handelt sich um eine Multibyte-Kodierung zur Lösung internationaler Zeichen. Sie verwendet 8 Bit (d. h. ein Byte) für Englisch und 24 Bit (drei Byte) für Chinesisch. UTF-8 enthält Zeichen, die von allen Ländern der Welt verwendet werden. Es handelt sich um eine internationale Kodierung und eine große Vielseitigkeit. UTF-8-codierter Text kann in Browsern in verschiedenen Ländern angezeigt werden, die den UTF8--Zeichensatz unterstützen. Wenn es sich beispielsweise um eine UTF8-Codierung handelt, kann Chinesisch auch im englischen IE von Ausländern angezeigt werden, und sie müssen das chinesische Sprachunterstützungspaket des IE nicht herunterladen.

GBK ist ein Standard, der auf dem nationalen Standard GB2312 basiert und erweitert wurde, um mit GB2312 kompatibel zu sein. Die Textkodierung von GBK wird durch Doppelbytes dargestellt, das heißt, sowohl chinesische als auch englische Zeichen werden durch Doppelbytes dargestellt. Um chinesische Zeichen zu unterscheiden, werden die höchsten Bits auf 1 gesetzt. GBK enthält alle chinesischen Zeichen und ist eine nationale Kodierung. Es ist weniger vielseitig als UTF8, belegt aber eine größere Datenbank als GBD.

GBK, GB2312 usw. müssen durch Unicode-Kodierung in UTF8 konvertiert werden:
GBK, GB2312--Unicode--UTF8
UTF8--Unicode--GBK, GB2312

Wenn auf einer Website oder in einem Forum viele englische Zeichen vorhanden sind, wird empfohlen, UTF-8 zu verwenden, um Platz zu sparen. Allerdings unterstützen viele Forum-Plug-ins mittlerweile generell nur GBK.

GB2312 ist eine Teilmenge von GBK, die eine Teilmenge von GB18030 ist.
GBK ist ein großer Zeichensatz, der chinesische, japanische und koreanische Zeichen enthält.
Wenn es sich um eine chinesische Website handelt, wird GB2312 manchmal immer noch empfohlen einige Probleme
Um alle verstümmelten Codeprobleme zu vermeiden, sollte UTF-8 verwendet werden. Es wird auch in Zukunft sehr praktisch sein, die Internationalisierung zu unterstützen
UTF-8 kann als angesehen werden großer Zeichensatz, der die Kodierung des größten Teils des Textes enthält.
Ein Vorteil der Verwendung von UTF-8 besteht darin, dass Benutzer in anderen Regionen (z. B. Hongkong und Taiwan) Ihren Text normal und ohne verstümmelte Zeichen anzeigen können, ohne die Unterstützung für vereinfachtes Chinesisch installieren zu müssen.

gb2312 ist der Code für vereinfachtes Chinesisch
gbk unterstützt vereinfachtes Chinesisch und traditionelles Chinesisch
big5 unterstützt traditionelles Chinesisch
utf-8 unterstützt fast alle Zeichen

Analysieren Sie zunächst das Verstümmelte Codesituation

Mehrere Zeichensätze in MySQL beteiligt

character-set-server/default-character-set: Server-Zeichensatz, standardmäßig verwendet.
character-set-database: Datenbankzeichensatz.
Zeichensatztabelle: Zeichensatz der Datenbanktabelle.
Priorität erhöht sich nacheinander. Daher muss unter normalen Umständen nur der Zeichensatzserver festgelegt werden, und der Zeichensatz wird beim Erstellen von Datenbanken und Tabellen nicht angegeben. Auf diese Weise ist der Zeichensatzserver einheitlich gebraucht. character-set-client: Der Zeichensatz des Clients. Standardzeichensatz des Clients. Wenn ein Client eine Anfrage an den Server sendet, wird die Anfrage in diesem Zeichensatz codiert.
character-set-results: Ergebniszeichensatz. Wenn der Server Ergebnisse oder Informationen an den Client zurückgibt, werden die Ergebnisse in diesem Zeichensatz codiert.
Wenn auf der Client-Seite die Zeichensatzergebnisse nicht definiert sind, wird der Zeichensatz des Zeichensatz-Clients als Standardzeichensatz verwendet. Sie müssen also nur den Zeichensatz „character-set-client“ festlegen.

Um Chinesisch zu verarbeiten, können Sie sowohl den Zeichensatzserver als auch den Zeichensatzclient auf GB2312 einstellen. Wenn Sie mehrere Sprachen gleichzeitig verarbeiten möchten, stellen Sie ihn auf UTF8 ein.

Über das chinesische Problem von MySQL

Der Weg, den verstümmelten Code zu lösen, besteht darin, die folgenden drei Systemparameter von MySQL so einzustellen, dass sie mit dem Zeichensatz des Servers übereinstimmen Ausführen der SQL-Anweisung. Derselbe Zeichensatz wie bei set-server.

character_set_client: Der Zeichensatz des Clients.
character_set_results: Ergebniszeichensatz.
character_set_connection: Verbindungszeichensatz.
Legen Sie diese drei Systemparameter fest, indem Sie Anweisungen an MySQL senden: set name gb2312

Das Obige ist der gesamte Inhalt dieses Artikels. Wenn Sie nicht viel darüber wissen, können Sie mehr implementieren Es ist leicht, beide Seiten selbst zu meistern!



Verwandte Empfehlungen:
SQL-AbfrageWie man in einem Array verwendet

Geheimnisse zur Beschleunigung von SQL-Abfragen, um zu verhindern, dass Datenbankcode die Datenbank blockiert

Komplexe Abfragen von MySQL-Abfrageanweisungen

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Lösung für verstümmelte Zeichen in SQL-Befehlsabfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn