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", "")
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
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!