Heim  >  Artikel  >  Backend-Entwicklung  >  So lösen Sie verstümmelten Golang-Println-Code

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

PHPz
PHPzOriginal
2023-04-27 09:10:21934Durchsuche

Golang ist bei Entwicklern als schnelle und effiziente Programmiersprache weithin beliebt. Manchmal stoßen wir jedoch auf seltsame Probleme, z. B. wenn die println-Funktion von Golang verstümmelte Zeichen ausgibt. Dieses Problem wird im Allgemeinen durch eine inkonsistente Zeichenkodierung verursacht.

Strings in Golang sind in UTF-8 codiert und die println-Funktion verwendet standardmäßig die Standardausgabe, also die Konsole. In der Konsole wird im Allgemeinen die standardmäßige Zeichenkodierung des Systems verwendet. In Windows-Systemen ist die Standardzeichenkodierung GBK oder GB2312, was nicht mit der UTF-8-Kodierung übereinstimmt. Daher können bei der Ausgabe der Zeichenfolge an die Konsole verstümmelte Zeichen erscheinen.

Die Lösung für dieses Problem besteht darin, die Zeichenkodierung der Konsole auf UTF-8 einzustellen. In Windows-Systemen können wir zum Einrichten die folgenden Schritte ausführen:

  1. Öffnen Sie die Eingabeaufforderung

In Windows-Systemen können Sie die Tastenkombination Win + R verwenden, um das Ausführungsfenster zu öffnen, „cmd“ eingeben und drücken Eingabetaste. Öffnen Sie eine Eingabeaufforderung.

  1. Zeichenkodierung festlegen

In der Eingabeaufforderung können wir den Befehl chcp verwenden, um die Zeichenkodierung festzulegen. Geben Sie chcp 65001 ein und drücken Sie die Eingabetaste, um die Zeichenkodierung auf UTF-8 festzulegen. Wie unten gezeigt:

C:\> chcp 65001
  1. Führen Sie das Golang-Programm aus

Nach dem Festlegen der Zeichenkodierung können wir normalerweise UTF-8-kodierte Zeichenfolgen in der Konsole ausgeben. In Golang können wir die Println-Funktion im fmt-Paket verwenden, um einen String auszugeben. Im Code müssen wir die Zeichenkodierung des Ausgabestreams als UTF-8 angeben, um eine korrekte Ausgabe sicherzustellen. Das Codebeispiel lautet wie folgt:

package main

import (
    "fmt"
    "os"
)

func main() {
    f, err := os.OpenFile("log.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
    if err != nil {
        fmt.Println(err)
        return
    }
    defer f.Close()
    fmt.Fprintf(f, "Hello, 世界")
}
  1. Kompilieren Sie das Programm und führen Sie es aus

Nachdem wir das Programm geschrieben haben, müssen wir den Befehl go build verwenden, um das Programm zu kompilieren und die generierte ausführbare Datei auszuführen. Geben Sie in der Konsole den folgenden Befehl zum Kompilieren ein:

C:\go\src\helloworld> go build

Nachdem die Kompilierung abgeschlossen ist, können wir das Programm ausführen. Geben Sie in der Konsole den folgenden Befehl ein, um die ausführbare Datei auszuführen:

C:\go\src\helloworld> helloworld.exe

Beim Ausführen des Programms werden wir feststellen, dass „Hello, world“ normal in der Datei log.txt ausgegeben wurde.

Zusammenfassung

Wenn wir in Golang auf das Problem einer verstümmelten Konsolenausgabe stoßen, können wir es lösen, indem wir die Zeichenkodierung festlegen. Auf Windows-Systemen können Sie mit dem Befehl chcp die Zeichenkodierung auf UTF-8 einstellen. Im Programm müssen wir die Zeichenkodierung des Ausgabestreams als UTF-8 angeben, um eine korrekte Ausgabe sicherzustellen. Auf diese Weise können wir das Problem der verstümmelten Ausgabe der Golang-Println-Funktion leicht lösen und die Lesbarkeit und Wartbarkeit des Programms verbessern.

Das obige ist der detaillierte Inhalt vonSo lösen Sie verstümmelten Golang-Println-Code. 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