![QQ图片20220915023917.png](https://static.golangjob.cn/220915/61795eecf38847cde76bc22821f17c2b.png)
大佬们 什么方法能转成目标样式这种bytes
追了下源码,和我那个逻辑差不多,只是处理了很多其他情况,中文的Unicode在`0x4e00 - 0x9fa5`,所以我那种方法完全满足,如果要处理所有Unicode字符,看了下你这个逻辑里面分情况了,有的会转成utf8有的会转成utf16。
![image.png](https://static.golangjob.cn/220916/8946fccd3add91868ebbf3cdba5126e0.png)
至于你说的警告,我只是为了不让res多分配内存,你用我上面改的再试试看。
#4
更多评论
一开始我也以为是啥编码,结果就是把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