我正在尝试解码一个 base64 编码的字符串,其中包含一些二进制数据。字符串有时只包含一个字符。不幸的是,函数 QByteArray::fromBase64() 仅适用于较大的输入字符串。
此代码适用于较大的输入字符串:
QByteArray text = QByteArray::fromBase64("ykw8");
unsigned int val = 0;
for(int i = 0; i < text.length(); i++)
val |= (text.data()[text.length() - i - 1] & 0xff) << (i*8);
之后val
包含 13257788,这是“ykw8”中编码的正确数据。但是,如果我提交“u”作为 fromBase64() 的参数,则结果数组 ( text
) 的大小为 0。因此该变量val
也包含 0,尽管它应该是 46。
我已经尝试填充输入字符串,即“u==”和类似的,但大小text
始终为0。那么如何正确地从Base64()解码短字符串?