Algorithm 如何使用Go将StringText转换为二进制文件

Algorithm 如何使用Go将StringText转换为二进制文件,algorithm,go,hash,rune,Algorithm,Go,Hash,Rune,我想将文本(type=字符串)转换为二进制(type=字符串)并使用Go转换为 一些用户完整链接: & 但我需要另一个 我想把像hello这样的文本转换成binary。接下来可以将二进制文件转换为第一个文本(hello) 如gist.github.com/hutt/8978333(使用php) 另外,对于我来说,speed是importamt将每个字节分别转换为其基2表示形式。您可以使用strconv.ParseUint将base2转换回字节 func stringToBase2(s str

我想将
文本
(type=
字符串
)转换为
二进制
(type=
字符串
)并使用Go转换为

一些用户完整链接: &

但我需要另一个

我想把像
hello
这样的文本转换成
binary
。接下来可以将二进制文件转换为第一个文本(
hello

如gist.github.com/hutt/8978333(使用php)


另外,对于我来说,
speed
importamt

将每个字节分别转换为其基2表示形式。您可以使用
strconv.ParseUint
将base2转换回字节

func stringToBase2(s string) string {
    var buf bytes.Buffer
    for i := 0; i < len(s); i++ {
        fmt.Fprintf(&buf, "%08b", s[i])
    }
    return buf.String()
}

func base2ToString(s string) string {
    var out []byte
    for i := 0; i+8 <= len(s); i += 8 {
        b, err := strconv.ParseUint(s[i:i+8], 2, 8)
        if err != nil {
            panic(err)
        }
        out = append(out, byte(b))
    }
    return string(out)
}
func stringToBase2(s字符串)字符串{
var buf字节。缓冲区
对于i:=0;i对于i:=0;i+8,“二进制”是什么意思?您将字符串更改为
******
并神奇地将其转换回的示例(使用php)并没有任何感觉,我仍然不明白。字符串只是一个字节片,可以直接转换为
[]字节,它已经是“二进制”了如您所知。请准确显示您期望的输出。
1101000 1100101 1101100 1101100 1101111
=
hello
在这个php源代码中?
需要尝试,如果不是二进制的话,catch不显示错误。
示例:
fmt.Println(base2ToString(“jdfigjdfg”))
如何修复此问题?显示错误:
panic:strconv.ParseUint:parsing“jdfgidjf”:无效语法
???如何修复?我故意让它在无效输入时死机。如果你想捕获所有错误,你可以自由地这样做。而不是
死机
,返回错误并处理它。你已经学习了Go的基本知识了吗?也许可以使用@LovePython:
adler32
是一个校验和,你不能“解码”它。你是说?请花点时间学习基础知识和如何检查文档。哦,好的。我有一个文本(数字)。如何缩小这个?什么哈希更好和缩小?
func stringToBase2(s string) string {
    var buf bytes.Buffer
    for i := 0; i < len(s); i++ {
        fmt.Fprintf(&buf, "%08b", s[i])
    }
    return buf.String()
}

func base2ToString(s string) string {
    var out []byte
    for i := 0; i+8 <= len(s); i += 8 {
        b, err := strconv.ParseUint(s[i:i+8], 2, 8)
        if err != nil {
            panic(err)
        }
        out = append(out, byte(b))
    }
    return string(out)
}