给定一个字符串,我怎么知道它是否需要解码

2024-10-01 15:33:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用python的base64模块,得到一个可以编码也可以不编码的字符串。我想做些类似的事情:

if isEncoded(s):
   output = base64.decodestring(s)
else:
   output = s

有什么想法?在


Tags: 模块字符串编码outputif事情elsebase64
3条回答

你可以试试看会发生什么:

import base64

def decode_if_necessary(s):
    try:
         return base64.decodestring(s)
    except:
         return s

但是你必须扪心自问:如果原始消息实际上是一个语法上有效的base64字符串,而不是它的本意呢?然后“解码”它将成功,但结果不是所需的输出。所以我要问:这真的是你想要的吗?在

编辑:请注意,^{}已弃用。在

您可以检查字符串may be base64 encoded。一般来说,该函数可以预测75%以上的准确率是对数据进行编码。在

def isBase64(s):
    return (len(s) % 4 == 0) and re.match('^[A-Za-z0-9+/]+[=]{0,2}$', s)

一般来说,这是不可能的;例如,如果您收到字符串“mjj”,您怎么可能知道它是否已经被解码并需要按原样使用,还是被解码成“23”?在

相关问题 更多 >

    热门问题