本文介绍如何使用Qt接口对数据进行Base64编解码。
Base64是基于64个可打印字符来显示2进制数据,它用于传输8Bit字节代码,并在HTTP传输中广泛应用。
1111110,0111111,11111100
00111111,00100111,00111111,00111100
63,39,63,60
/,n,/,8
/n/8
QByteArray QByteArray::toBase64() const
QByteArray QByteArray::toBase64(QByteArray::Base64Options options) const
QByteArray text("Hello world");
text.toBase64();
/* 输出: SGVsbG8gd29ybGQ= */
[static] QByteArray QByteArray::fromBase64(const QByteArray &base64)
[static] QByteArray QByteArray::fromBase64(const QByteArray &base64,
QByteArray::Base64Options options)
QByteArray::fromBase64("SGVsbG8gd29ybGQ=");
/* 输出: Hello world */
Base64Options | 含义 |
---|---|
Base64Encoding | (默认)常规Base64字母表,简称“Base64” |
Base64UrlEncoding | 与常规Base64不同的是将“+”和“/”分别改成了“-”和“_”,对url更友好 |
KeepTrailingEquals | (默认)保持编码数据末尾后填充等号,数据的大小总是4的倍数。 |
OmitTrailingEquals | 省略编码数据末尾的等号 |
toBase64(Base64Options ) | Hello world?! |
---|---|
Base64Encoding | SGVsbG8gd29ybGQ/IQ== |
Base64Encoding | OmitTrailingEquals | SGVsbG8gd29ybGQ/IQ |
Base64UrlEncoding | SGVsbG8gd29ybGQ_IQ== |
Base64UrlEncoding | OmitTrailingEquals | SGVsbG8gd29ybGQ_IQ |
https://tools.ietf.org/html/rfc2045