/*
* Copyright Oleg Borodin <borodin@unix7.org>
*/
package main
import (
"fmt"
"unicode/utf8"
)
/*
* Without validation
*/
func revUTF8String(value string) string {
sourse := []byte(value)
runes := make([]rune, 0)
result := make([]byte, 0)
for len(sourse) > 0 {
r, size := utf8.DecodeRune(sourse)
sourse = sourse[size:]
runes = append(runes, r)
}
for _, r := range runes {
runeLen := utf8.RuneLen(r)
buffer := make([]byte, runeLen)
_ = utf8.EncodeRune(buffer, r)
result = append(buffer, result...)
}
return string(result)
}
func main() {
fmt.Println(revUTF8String("йцукенг"))
}