1 回答
TA貢獻2011條經驗 獲得超2個贊
您的輸入是某些數據的十六進制表示。并且您的預期輸出不是十六進制表示的 UTF-8 數據的 Base64 編碼,而是十六進制編碼表示的數據(字節),因此首先解碼字節,例如使用hex.DecodeString():
func TLVsToBase64(v string) (string, error) { // v - the TLV in hex format
data, err := hex.DecodeString(v)
if err != nil {
return "", err
}
encodedTLV := base64.StdEncoding.EncodeToString(data)
return encodedTLV, nil
}
測試它:
s := "0115426f627320426173656d656e74205265636f726473020f3130303032353930363730303030330314323032322d30342d32355431353a33303a30305a040a323130303130302e393905093331353031352e3135"
fmt.Println(TLVsToBase64(s))
輸出是你所期望的(在Go Playground上試試):
ARVCb2JzIEJhc2VtZW50IFJlY29yZHMCDzEwMDAyNTkwNjcwMDAwMwMUMjAyMi0wNC0yNVQxNTozMDowMFoECjIxMDAxMDAuOTkFCTMxNTAxNS4xNQ== <nil>
- 1 回答
- 0 關注
- 171 瀏覽
添加回答
舉報
