У меня следующий код, который декодирует 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 - это его декодированное значение.
Я должен закодировать его в hex, поэтому я передаю его в 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 ~" ", я получу неправильный ответ
Есть ли что-то с этим назначением base64_decoded: = fmt.Sprintf ("% q", base64_decode)
что я делаю не так