Wie kodiere [] rune in [] byte mit utf8 in golang?

8

Es ist also wirklich einfach, ein []byte in ein []rune zu dekodieren (einfach in string umwandeln, dann in []rune umwandeln funktioniert sehr gut, ich nehme an, dass es standardmäßig auf utf8 und mit Füllbytes für Invaliden steht ). Meine Frage ist - wie sollen Sie diese []rune zurück zu []byte in utf8 formulieren?

Fehle ich etwas oder muss ich EncodeRune manuell für jede einzelne Rune in meinem []rune aufrufen? ? Sicherlich gibt es einen Encoder, dem ich einfach ein Writer übergeben kann.

    
Herp Derpington 25.03.2015, 12:31
quelle

1 Antwort

20

Du kannst einfach ein Runenstück ( []rune ) in string umwandeln, das du wieder in []byte umwandeln kannst.

Beispiel:

%Vor%

Ausgabe (Probieren Sie es auf dem Go Playground aus):

%Vor%

Die Go-Spezifikation: Conversions erwähnt diesen Fall explizit: Conversions zu und von einem String-Typ , Punkt 3:

  

Das Konvertieren eines Slices von Runen in einen Stringtyp ergibt eine Zeichenkette, die die Verkettung der einzelnen Runenwerte darstellt, die in Zeichenketten umgewandelt werden.

    
icza 25.03.2015, 12:35
quelle