go - 非 base64 字符串按原样处理
问题描述
再会!
我有一个 base64 编码的 id,它是一些类似“/some/path/ok”的路径
L3NvbWUvcGF0aC9vaw==
当我尝试对其进行解码时-应该可以。
有时我会在我的函数中得到一些错误的数据,例如:
5b835b45b2de7748459a1183
它不是 base64 编码的字符串,但我的代码和 golang 解码器说没问题:
s, err:= base64.URLEncoding.DecodeString("5b835b45b2de7748459a1183")
有什么方法可以确保给定的字符串是base64还是不是base64?或者我必须依赖其他一些工具,比如解码后检查路径?
解决方案
5b835b45b2de7748459a1183
是一个有效的 base64 字符串,所以你不能做任何事情。有一个输入数据,其 base64 编码形式正是如此。
这与 Go 或处理 base64 字符串无关,这很可能是生成此文本的源中的错误。这很可能是某些数据的十六进制表示(可选地与其他转换)。如果它生成 base64 以外的任何内容,您必须修复您的源,或者您必须使用正确的解码算法(在这种情况下不是 base64)。
推荐阅读
- django - 如何将过滤器后端添加到基于功能的视图?
- angular - 带有输出兑现标志的 Angular 构建生成相同的哈希
- python - 用于计算两者之间差异的平方的 Python 代码
- eclipse - 当我从 Eclipse 运行我的 MonkeyC 程序时,为什么我的代码更改没有编译或显示?
- logging - 处理重写规则后的 Haproxy 记录最终路径
- c++ - Qt 如何枚举屏幕?
- kubernetes - 如何更改 OpenShift 控制台 URL 和 API URL
- python - 使用 Python 提取包含给定单词的标签之间的文本
- javascript - 如何使用时刻获取相同日期的数据?
- vue.js - Vue在更改路由时重新创建父组件