请教string编码的问题

gugolang · · 1407 次点击
jan-bar
想要拥有,必定付出。
追了下源码,和我那个逻辑差不多,只是处理了很多其他情况,中文的Unicode在`0x4e00 - 0x9fa5`,所以我那种方法完全满足,如果要处理所有Unicode字符,看了下你这个逻辑里面分情况了,有的会转成utf8有的会转成utf16。 ![image.png](https://static.golangjob.cn/220916/8946fccd3add91868ebbf3cdba5126e0.png) 至于你说的警告,我只是为了不让res多分配内存,你用我上面改的再试试看。
#4
更多评论
目標樣式是用那種編碼?
#1
jan-bar
想要拥有,必定付出。
一开始我也以为是啥编码,结果就是把rune换成2个字节数据,参照如下代码 ```go package main import ( "fmt" ) func main() { str := "你好golang" r := transform(str) fmt.Printf("%v\n", r) } func transform(s string) []byte { res := make([]byte, 0, len(s)*2) for _, r := range s { res = append(res, byte(r), byte(r>>8)) } return res } ``` 结果:[96 79 125 89 103 0 111 0 108 0 97 0 110 0 103 0]
#2