在将一个加密的算法从 php 翻译到 go ,最后发现数字转换为 ascii 的时候,两个语言不一致, php 用的 chr(int), go 是直接用的 string(int),求教正确的姿势
|
1
姿势应该是正确的,倒是可以关注下这个 int 是不是超过 128
|
|
2
@horsley 就是超过 128 的就不正确了
|
|
3
[]byte(strconv.Itoa(int))
|
|
4
string([]rune{rune(i % 256)})
|
|
5
char --> int rune('a')
int --> char string([]byte{97}) |
|
6
golang 的 string 使用的是 utf8 编码
|
|
7
@zeayes 没有 char 这个类型,'a'和'你'的类型都是 int32 ,和 rune 一样。
string 也不是 char ,这里根本就不应该出现[]byte 。 rune 到 string 只需要 string([]rune{97, 30000})这样。 |