Heim > Backend-Entwicklung > Golang > Wie entferne ich effizient diakritische Zeichen aus UTF-8-Zeichenfolgen in Go?

Wie entferne ich effizient diakritische Zeichen aus UTF-8-Zeichenfolgen in Go?

Susan Sarandon
Freigeben: 2024-12-08 14:03:11
Original
546 Leute haben es durchsucht

How to Efficiently Remove Diacritics from UTF-8 Strings in Go?

Diakritische Zeichen in Go entfernen

Bei der Arbeit mit UTF8-codierten Zeichenfolgen kann es erforderlich sein, diakritische Zeichen, wie z. B. die Akzente aus „žůžo“, zu entfernen „um „zuzo“ zu bekommen. Um solche Szenarien effizient zu bewältigen, stehen in Go Standardbibliotheken und -techniken zur Verfügung.

Ein Ansatz besteht darin, die Funktion unicode.Is() zu nutzen, um diakritische Zeichen (als „Mn“ klassifizierte Zeichen für Zeichen ohne Leerzeichen) zu identifizieren.

Der folgende Codeausschnitt zeigt, wie man diakritische Zeichen aus einer bestimmten Zeichenfolge mithilfe von unicode/norm und golang.org/x/text/transform entfernt Pakete:

package main

import (
    "fmt"
    "unicode"

    "golang.org/x/text/transform"
    "golang.org/x/text/unicode/norm"
)

func isMn(r rune) bool {
    return unicode.Is(unicode.Mn, r) // Mn: nonspacing marks
}

func main() {
    t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC)
    result, _, _ := transform.String(t, "žůžo")
    fmt.Println(result)
}
Nach dem Login kopieren

Dieser Code entfernt diakritische Zeichen durch Anwenden einer Reihe von Transformationen:

  1. Normalisierte Formzerlegung (NFD): Zerlegt die Zeichenfolge in ihre Einzelteile Basis-Unicode-Zeichen, einschließlich Diakritische Zeichen.
  2. RemoveFunc(isMn): Filtert Zeichen heraus, die Zeichen ohne Leerzeichen (diakritische Zeichen) sind.
  3. Normalization Form Composition (NFC): Setzt neu zusammen die Zeichenfolge ohne diakritische Zeichen.

Als Ergebnis ist die Ausgabe eine Zeichenfolge ohne diakritische Zeichen, wie im Beispiel: „žůžo“ => „zuzo“.

Das obige ist der detaillierte Inhalt vonWie entferne ich effizient diakritische Zeichen aus UTF-8-Zeichenfolgen in Go?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage