unicode编码 utf-8
Golang如何把json中的unicode编码转换成中文字符? - 知乎 https://www.zhihu.com/question/330544039
import (
"strconv"
"strings"
)
func UnescapeUnicode(raw []byte) (string, []byte, error) {
str, err := strconv.Unquote(strings.Replace(strconv.Quote(string(raw)), `\\u`, `\u`, -1))
if err != nil {
return "", nil, err
}
return str, []byte(str), nil
}
import (
"reflect"
"testing"
)
func TestUnescapeUnicode(t *testing.T) {
type args struct {
raw []byte
}
tests := []struct {
name string
args args
want string
want1 []byte
wantErr bool
}{
// TODO: Add test cases.
{name: "", args: args{raw: []byte(`{"HelloWorld":"\uB155,\uC138\uC0C1(\u4E16\u4E0A).\u263a"}`)}, want: `{"HelloWorld":"녕,세상(世上).☺"}`, want1: []byte(`{"HelloWorld":"녕,세상(世上).☺"}`), wantErr: false},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, got1, err := UnescapeUnicode(tt.args.raw)
if (err != nil) != tt.wantErr {
t.Errorf("UnescapeUnicode() error = %v, wantErr %v", err, tt.wantErr)
return
}
if got != tt.want {
t.Errorf("UnescapeUnicode() got = %v, want %v", got, tt.want)
}
if !reflect.DeepEqual(got1, tt.want1) {
t.Errorf("UnescapeUnicode() got1 = %v, want %v", got1, tt.want1)
}
})
}
}

浙公网安备 33010602011771号