qt base64编码/decode添加逃脱字符
qt base64 encode/decode adds escape characters
我有一种返回unsigned char *
数组的方法,我试图将其编码为base64并稍后将其解码。因此,我正在做的如下:
unsigned char * val = myMethod();
char * encodedMsg = reinterpret_cast<char *>(val);
std::cout << "Returned message: " << val << std::endl;
QByteArray raw = QByteArray(encodedMsg).toBase64(QByteArray::Base64Encoding | QByteArray::OmitTrailingEquals);
该方法的输出为u0001zri!i,
,编码值是XHUwMDAxelxyaSFpLA
。
现在,我将其解码如下:
QByteArray decoded = QByteArray::fromBase64(raw,
QByteArray::Base64Encoding | QByteArray::OmitTrailingEquals);
qDebug() << decoded;
现在返回\u0001z\ri!i,
。请注意,斜线已被逃脱。
我知道我可以将其替换为后处理步骤,但是有没有办法避免这种情况。也许我正在使用编码/解码错误?
尝试如下,
基本64编码:
unsigned char* Ciphertext = Encypt();
QByteArray qByteArray((char*)(Ciphertext),(int)strlen((char *)Ciphertext));
qDebug()<<"Ciphertext : "<< qByteArray.toBase64();
输出:
Ciphertext : "WLdC+ri94z940BiAven6qXQH6rPbE64nQXt5aFByLGPFh1n//tOGLG02zBSoZ79qMA"
基本64解码:
QString data = QString::fromLatin1(QByteArray::fromBase64(Base64QByteArray.toBase64()).data());
在我的情况下,我将此基本64转换用于AES加密,使其可为您的使用。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何在C++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 如何仅为一个函数添加延迟
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 如何将更多文件夹添加到c++include路径
- 如何将元素添加到数组的线程安全函数?
- QT通过C++添加映射QML项目
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 只能向C++添加一定数量的字符
- Qt和C++:将QLineEdit添加到QTabWidget中
- 将QIcon添加到QTableView单元格
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- 为什么除非添加括号,否则构造函数上的模板替换会失败?
- 将图像添加到资源文件夹UWP C++
- qt base64编码/decode添加逃脱字符