So lösen Sie verstümmelten Golang-MySQL-Code

PHPz
Freigeben: 2023-04-03 09:52:13
Original
961 Leute haben es durchsucht

Golang ist eine Open-Source-Programmiersprache. Ihr Aufkommen hat vielen Programmierern eine neue Wahl gegeben. MySQL ist ein bekanntes relationales Datenbankverwaltungssystem und viele Golang-Programmierer verwenden MySQL als Datenspeicherlösung. Aufgrund unterschiedlicher Zeichensätze und anderer Aspekte werden viele Entwickler jedoch auf das Problem verstümmelter Zeichen stoßen, wenn Golang mit MySQL interagiert.

Wie kann man also das Problem verstümmelter Zeichen lösen, wenn Golang mit MySQL interagiert? Hier sind einige mögliche Lösungen.

1. Legen Sie den Zeichensatz fest

Der Standardzeichensatz der MySQL-Datenbank ist utf8mb4, während der Standardzeichensatz von Golang utf8 ist. Wenn die Zeichensätze auf beiden Seiten inkonsistent sind, werden verstümmelte Zeichen angezeigt. Daher können wir beim Herstellen einer Verbindung mit MySQL den Zeichensatz als utf8mb4 angeben, wie unten gezeigt:

db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database?charset=utf8mb4")
Nach dem Login kopieren

Dadurch wird sichergestellt, dass Golang und MySQL denselben Zeichensatz verwenden. Es ist zu beachten, dass beim Erstellen der Datenbank auch der Zeichensatz auf utf8mb4 eingestellt werden muss.

2. Verwenden Sie den Standardwert des Zeichensatzes utf8mb4.

Der Standardwert des Zeichensatzes utf8mb4 ist utf8mb4_general_ci, nicht utf8mb4_bin. Wenn wir beim Erstellen einer Tabelle oder eines Felds keinen Zeichensatz angeben oder den Standardzeichensatz verwenden, verwendet MySQL utf8mb4_general_ci als Standardwert. utf8mb4_general_ci ist eine Vergleichsmethode, die auf dem Unicode-Zeichensatz basiert. Sie unterscheidet nicht zwischen Groß- und Kleinschreibung und Akzenten, was die Verarbeitung von Textdaten erleichtert.

Daher können wir beim Erstellen einer Tabelle oder eines Felds den Zeichensatz nicht angeben und direkt den Standardwert verwenden, um verstümmelte Zeichen zu vermeiden. Wie unten gezeigt:

CREATE TABLE user (
  name varchar(50) NOT NULL,
  age int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Nach dem Login kopieren

3. Verwenden Sie die Zeichensatzkonvertierungsfunktion

Wenn wir unterschiedliche Zeichensätze verwenden, können wir die von MySQL bereitgestellte Zeichensatzkonvertierungsfunktion verwenden, um Text in verschiedene Zeichensätze zu konvertieren. Unter diesen sind CONVERT() und CAST() die am häufigsten verwendeten Funktionen. Die Funktion

  • CONVERT() kann eine Zeichenfolge von einem Zeichensatz in einen anderen konvertieren. Die Syntax lautet wie folgt:
CONVERT(str USING charset)
Nach dem Login kopieren

wobei str die zu konvertierende Zeichenfolge und charset der Zielzeichensatz ist.

Um beispielsweise eine Zeichenfolge im Zeichensatz utf8 in eine Zeichenfolge im Zeichensatz gbk zu konvertieren, können Sie die folgende Anweisung verwenden:

SELECT CONVERT('你好',CHARACTER SET gbk);
Nach dem Login kopieren
  • Die Funktion CAST() kann auch eine Zeichenfolge von einem Zeichensatz in einen anderen konvertieren . Die Syntax lautet wie folgt:
CAST(str AS character_type CHARACTER SET charset)
Nach dem Login kopieren

Unter diesen ist str die zu konvertierende Zeichenfolge, Character_Type der Zieldatentyp und Charset der Zielzeichensatz.

Um beispielsweise den Feldnamen des UTF8-Zeichensatzes vom Typ Varchar in ein Feld des GBK-Zeichensatzes zu konvertieren, können Sie die folgende Anweisung verwenden:

SELECT CAST(name AS char(20) CHARACTER SET gb2312) FROM user;
Nach dem Login kopieren

Durch die Verwendung der Zeichensatzkonvertierungsfunktion können wir das verstümmelte Problem lösen wenn Golang mit MySQL interagiert.

Die oben genannten sind mehrere Möglichkeiten, das verstümmelte Problem zu lösen, wenn Golang mit MySQL interagiert. In der tatsächlichen Entwicklung müssen Sie die geeignete Lösung entsprechend der spezifischen Situation auswählen. Ich hoffe, dieser Artikel kann Golang-Programmierern helfen, das Problem verstümmelter Zeichen zu lösen.

Das obige ist der detaillierte Inhalt vonSo lösen Sie verstümmelten Golang-MySQL-Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage