Heim >Backend-Entwicklung >Golang >Wie konvertiert man ANSI-Text in Go in UTF-8?

Wie konvertiert man ANSI-Text in Go in UTF-8?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-26 13:48:10788Durchsuche

How to Convert ANSI Text to UTF-8 in Go?

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!

Stellungnahme:
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