Konvertieren von ANSI-Text in UTF-8 in Go
In Go werden alle Zeichenfolgen im UTF-8-Format gespeichert. Es kann jedoch vorkommen, dass Sie ANSI-Text, der eine andere Zeichenkodierung verwendet, in UTF-8 konvertieren müssen. So können Sie dies erreichen:
Gemäß der Go-Sprachspezifikation werden alle Zeichenfolgen intern als UTF-8 behandelt. Daher ist keine explizite Konvertierung erforderlich. Wenn Sie ein Byte-Array haben, das ANSI-Text darstellt, können Sie es einfach mit dem folgenden Snippet in einen Go-String konvertieren:
import ( "bytes" "unicode/utf8" ) func convertANSItoUTF8(ansiBytes []byte) string { reader := bytes.NewReader(ansiBytes) decoder := utf8.RuneReader(reader) var utf8String []rune for { r, size, err := decoder.ReadRune() if err != nil { break } utf8String = append(utf8String, r) } return string(utf8String) }
Diese Funktion verwendet die Funktion utf8.RuneReader, um die ANSI-Bytes zu durchlaufen und zu konvertieren sie in UTF-8-Runen um. Die Runen werden dann an ein Slice angehängt, das schließlich in eine UTF-8-Zeichenfolge umgewandelt wird.
Hinweis: Diese Funktion geht davon aus, dass die ANSI-Eingabe gültig ist. Wenn ungültige Sequenzen vorhanden sind, ist das Verhalten der Funktion undefiniert.
Das obige ist der detaillierte Inhalt vonWie konvertiert man ANSI-Text in Go in UTF-8?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!