在 go 里如何将数字转换为 ascii 码?

2016-10-27 10:20:12 +08:00
 haython
在将一个加密的算法从 php 翻译到 go ,最后发现数字转换为 ascii 的时候,两个语言不一致, php 用的 chr(int), go 是直接用的 string(int),求教正确的姿势
2009 次点击
所在节点    Go 编程语言
9 条回复
horsley
2016-10-27 10:24:25 +08:00
姿势应该是正确的,倒是可以关注下这个 int 是不是超过 128
haython
2016-10-27 10:28:45 +08:00
@horsley 就是超过 128 的就不正确了
hst001
2016-10-27 10:35:42 +08:00
[]byte(strconv.Itoa(int))
reus
2016-10-27 11:29:02 +08:00
string([]rune{rune(i % 256)})
zeayes
2016-10-27 11:29:21 +08:00
char --> int rune('a')
int --> char string([]byte{97})
zwh8800
2016-10-27 15:11:22 +08:00
golang 的 string 使用的是 utf8 编码
reus
2016-10-27 15:18:56 +08:00
@zeayes 没有 char 这个类型,'a'和'你'的类型都是 int32 ,和 rune 一样。
string 也不是 char ,这里根本就不应该出现[]byte 。 rune 到 string 只需要 string([]rune{97, 30000})这样。
reus
2016-10-27 15:20:18 +08:00
@zwh8800 看文档, PHP 的 chr 是要先取模的
zeayes
2016-10-28 08:52:40 +08:00
@reus 恩,明白。 golang 里的确没有 char 这个类型,楼主的意思应该字符和 int 的转换, python 里面对应的是 chr 和 ord , golang 里面就是 rune 和 string 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/315809

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX