【发布时间】:2019-07-08 16:21:53
【问题描述】:
我有以下代码解码 base64,然后将其编码为十六进制。
doc_id := "Can35qPeFkm9Xgmp9+aj3g=="
base64_decode, err := base64.StdEncoding.DecodeString(doc_id)
if err != nil {
log.Fatal("error:", err)
}
base64_decoded := fmt.Sprintf("%q", base64_decode)
fmt.Printf("base_decoded %v\n", base64_decoded)
src := []byte(base64_decoded)
fmt.Println(src)
hex_encode := make([]byte, hex.EncodedLen(len(src)))
hex.Encode(hex_encode, src)
hex_encoded := fmt.Sprintf("%s", hex_encode)
fmt.Printf("hex_encoded %v", hex_encoded)
其中 doc_id 是 base64 格式。 base64_decoded 是它的解码值。 我必须将它编码为十六进制,所以我将它传递给 src。
问题是当我将标识符 base64_decoded 传递给 src 时,当我传入 base64_decoded 所持有的值时,我得到了错误的答案。 例如: 如果我得到 base64_decoded 值为 "\x11z\xc0[d~\xfcK\xb1\xf8\x11z\xc0[d~" 如果我通过它的值“\x11z\xc0[d~\xfcK\xb1\xf8\x11z\xc0[d~”,我得到正确答案 117ac05b647efc4bb1f8117ac05b647e
如果我传递持有“\x11z\xc0[d~\xfcK\xb1\xf8\x11z\xc0[d~”的变量,我得到错误答案 225c7831317a5c7863305b647e5c7866634b5c7862315c7866385c7831317a5c2863305bp6
这个作业有什么问题吗base64_decoded := fmt.Sprintf("%q", base64_decode)
我做错了什么
【问题讨论】: