1
0
mirror of https://github.com/fumiama/go-base16384.git synced 2026-06-05 00:32:52 +08:00
Files
go-base16384/conv.go
2022-04-22 10:32:20 +08:00

58 lines
1.1 KiB
Go

package base14
import (
"golang.org/x/text/encoding/unicode"
)
var format = unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM)
// UTF16BE2UTF8 to display the result as string
func UTF16BE2UTF8(b []byte) ([]byte, error) {
return format.NewDecoder().Bytes(b)
}
// UTF82UTF16BE to decode from string
func UTF82UTF16BE(b []byte) ([]byte, error) {
return format.NewEncoder().Bytes(b)
}
func EncodeToString(b []byte) string {
out, err := UTF16BE2UTF8(Encode(b))
if err != nil {
return ""
}
return BytesToString(out)
}
func EncodeFromString(s string) []byte {
return Encode(StringToBytes(s))
}
func EncodeString(s string) string {
out, err := UTF16BE2UTF8(Encode(StringToBytes(s)))
if err != nil {
return ""
}
return BytesToString(out)
}
func DecodeToString(d []byte) string {
return BytesToString(Decode(d))
}
func DecodeFromString(s string) []byte {
d, err := UTF82UTF16BE(StringToBytes(s))
if err != nil {
return nil
}
return Decode(d)
}
func DecodeString(s string) string {
d, err := UTF82UTF16BE(StringToBytes(s))
if err != nil {
return ""
}
return BytesToString(Decode(d))
}