Texteingabe in ASCII normalisieren
Viele Anwendungen erfordern die Fähigkeit, Benutzereingaben zu analysieren und Schreibfehler zu identifizieren. Der Umgang mit Nicht-ASCII-Zeichen, wie z. B. geschweiften Anführungszeichen, kann jedoch eine Herausforderung darstellen.
String-Ersetzung mit stdlib
Ein gängiger Ansatz besteht darin, String-Ersetzungen mit Funktionen zu verwenden wie bytes.Replace. Obwohl diese Methode für bestimmte bekannte Zeichen effektiv ist, kann sie für die Verarbeitung verschiedener Zeichen mühsam sein.
Verwendung der Strings.Map-Funktion
Die Go-Standardbibliothek bietet eine vielseitigere Lösung mit der Funktion strings.Map. Diese Funktion ermöglicht die Zuordnung von Runen (Unicode-Codepunkten) zu anderen Runen. Durch die Definition einer benutzerdefinierten Zuordnungsfunktion können Sie Nicht-ASCII-Zeichen in ihre ASCII-Äquivalente konvertieren.
Beispiel
<code class="go">import ( "fmt" "strings" ) func normalize(in rune) rune { switch in { case '“', '‹', '”', '›': return '"' case '‘', '’': return '\'' } return in } func main() { data := "Hello “Frank” or ‹François› as you like to be ‘called’" fmt.Printf("Original: %s\n", data) cleanedData := strings.Map(normalize, data) fmt.Printf("Cleaned: %s\n", cleanedData) }</code>
Ausgabe:
Original: Hello “Frank” or ‹François› as you like to be ‘called’ Cleaned: Hello "Frank" or "François" as you like to be 'called'
Das obige ist der detaillierte Inhalt vonWie normalisiere ich Nicht-ASCII-Texteingaben mithilfe der Go-Standardbibliothek in ASCII?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!