Heim > Backend-Entwicklung > Golang > Wie kann man ungültige UTF-8-Zeichen in Go-Strings effektiv behandeln?

Wie kann man ungültige UTF-8-Zeichen in Go-Strings effektiv behandeln?

DDD
Freigeben: 2024-12-07 06:44:14
Original
622 Leute haben es durchsucht

How to Effectively Handle Invalid UTF-8 Characters in Go Strings?

So behandeln Sie ungültige UTF-8-Zeichen in einer Zeichenfolge in Go

Beim Marshalling einer Liste von Zeichenfolgen mit json.Marshal können Sie dies tun Es wird die Fehlermeldung „json: invalid UTF-8 in string“ angezeigt. Dies liegt an ungültigen UTF-8-Sequenzen innerhalb der Zeichenfolgen.

Ersetzen oder Entfernen ungültiger Zeichen

In Python gibt es Methoden zum Entfernen, Ersetzen oder Erhöhen Ausnahmen für ungültige UTF-8-Zeichen. Go bietet eine ähnliche Lösung:

Verwendung von strings.ToValidUTF8 (Go 1.13)

Diese Funktion entfernt ungültige UTF-8-Sequenzen aus einem String und ersetzt sie durch den Unicode-Ersatz Zeichen (U FFFD).

fixedString := strings.ToValidUTF8("a\xc5z", "")
Nach dem Login kopieren

Mapping und Ersetzen mit utf8.RuneError (Go 1.11)

Sie können Zeichen in einer Zeichenfolge auch mithilfe von strings.Map und utf8.RuneError zuordnen. Wenn das Zeichen ein Unicode-Fehler (ungültig) ist, wird es durch den angegebenen Fallback-Wert (z. B. -1) ersetzt.

fixUtf := func(r rune) rune {
    if r == utf8.RuneError {
        return -1
    }
    return r
}

var input1 = "a\xc5z"
fmt.Println(strings.Map(fixUtf, input1)) // Output: az

var input2 = "posic�o"
fmt.Println(strings.Map(fixUtf, input2)) // Output: posico
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann man ungültige UTF-8-Zeichen in Go-Strings effektiv behandeln?. 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