QString字符串中双引号的梗
【1】QString字符串不支持双引号
最近做项目(本地环境:WIN10 + QT5.9.2 + VS2017)。有个需求,需要实现形如 "key="123456"" 这样的字符串。
查了很多资料,发现QString是没法实现愿望的。
但是,std::string可以实现字符中双引号的夙愿,只要加反斜杠即可。
于是,有了下面的 Demo示例。
【2】应用实例
代码如下(备注:比较简单,仅仅贴cpp文件):
#include <QtWidgets/QApplication>
#include <QDebug>
#include <QString>
#include <QByteArray>
#include <QCryptographicHash> int main(int argc, char *argv[])
{
QApplication a(argc, argv); QString strQString = "key=4008001234";
QByteArray qstrByte = strQString.toUtf8();
QString strQStringMd5 = QCryptographicHash::hash(qstrByte, QCryptographicHash::Md5).toHex();
qDebug() << "strQStringMd5 :: " << strQStringMd5; // "49b18827db03d50ae206e177391d8b09" #if 0
// QT5.4之前的版本,转换方式:
// std::string => QByteArray
QByteArray byteArray(stdString.c_str(), stdString.length());
// QByteArray => std::string
std::string stdString(byteArray.constData(), byteArray.length()); // QT5.4之后版本,转换方式:
inline std::string QByteArray::toStdString() const
{
return std::string(constData(), length());
} inline QByteArray QByteArray::fromStdString(const std::string &s)
{
return QByteArray(s.data(), int(s.size()));
}
#endif
std::string strValue = "key=\"4008001234\"";
QByteArray stdByte = QByteArray::fromStdString(strValue);
QString strStdMd5 = QCryptographicHash::hash(stdByte, QCryptographicHash::Md5).toHex();
qDebug() << "strStdMd5 :: " << strStdMd5; //"f43fa89e23dae10edc6545ebb14aada9" return a.exec();
}
总结:QString的确不支持双引号,但是可以变换思路,为了构建QByteArray类型的参数,我们可以使用std::string实现字符串中双引号的梦想。
【3】调试结果
有人或许看了上面实例会反问,仅仅从加密得出的字符串不同就可以判定后者是加了双引号吗?的确说服力不够。
从哪里可以确定加密的字符串是加双引号的呢?正如博客首页所述:编码以明志,调试而致远。
可以看看下面的两张调试截图:
(1)QString字符串转换为QByteArry后的结果

(2)std::string字符串转换为QByteArray后的结果

相信这样可以更笃定,且更喜欢调试的魅力。
Good Good Study, Day Day Up.
顺序 选择 循环 总结
QString字符串中双引号的梗的更多相关文章
- 在java代码中显示json字符串(怎么避免json字符串中双引号在java代码中显示)
String log = "eyJvcmRlckluZm8iOnsiaWQiOjEwNzQwNCwib3JkZXJJZCI6MjczNjQyMSwicHJvZHVjdENvZGUiOjQ1N ...
- ASP中双引号单引号和&连接符使用技巧
ASP中双引号单引号和&连接符使用技巧 一.ASP中处在双引号中的可以是任意的字符.字符串,HTML代码 1.<%response.write ("I am here" ...
- spring boot 配置 fastjson 替代 Jackson (并解决返回字符串带双引号问题)
注:以我遇到的情况,只要发出的请求参数是map格式的,都会在前后多加一个双引号 以下代码有两个功能:1.FastJson 替换 Spring 自带的 Jackson 2.解决返回的字符串带双引号问题 ...
- spring mvc 返回字符串带双引号及StringHttpMessageConverter乱码处理
本文转载自:http://blog.csdn.net/wangyangbto/article/details/48804155 很多人都碰到过,SpringMVC使用 @ResponseBody 注解 ...
- 前台传递给后台的JSON字符串中的引号 “” 在JAVA后台被转义为 "
前台传递给后台的JSON字符串中的引号 "" 在JAVA后台被转义为 " 1.问题: 前台数据,JSON字符串带有引号 "" ,数据被传递到后台 ...
- include包含头文件的语句中,双引号和尖括号的区别是什么?
include包含头文件的语句中,双引号和尖括号的区别是什么? #include <> 格式:引用标准库头文件,编译器从标准库目录开始搜索 尖括号表示只在系统默认目录或者括号内的路径查找 ...
- include包含头文件的语句中,双引号和尖括号的区别
include包含头文件的语句中,双引号和尖括号的区别 #include <>格式:引用标准库头文件,编译器从标准库目录开始搜索 #incluce ""格式:引用非 ...
- PHP中双引号引起的命令执行漏洞
前言 在PHP语言中,单引号和双引号都可以表示一个字符串,但是对于双引号来说,可能会对引号内的内容进行二次解释,这就可能会出现安全问题. 正文 举个简单例子 <?php $a = 1; $b = ...
- shell 脚本中双引号 单引号 反引号 的区别
转自:http://blog.csdn.net/iamlaosong/article/details/54728393 最近要编个shell脚本处理数据,需要检测数据文件是否存在,文件名中包含日期,所 ...
随机推荐
- 重读《深入理解Java虚拟机》七、探究Java内存模型
1.计算机物理内存结构(物理内存结构决定了虚拟机内存结构) 由于处理器和主存储设备在运算速度上不上同一个数量级上,因此处理器和主存储器之间不得不增设一层高速缓存,将部分在主存储设备的运算放在高速缓存内 ...
- 10种linux下磁盘快照方式恢复系统
导读 大家都知道windows系统有一个磁盘快照的功能,在windows2003中系统恢复开始依赖于一个叫做硬盘快照服务(Volume Snapshot Service)的服务,他能够自动创建系统快照 ...
- NOIP初赛知识点
http://www.doc88.com/p-9982181637642.html 连载中…… (一)八大排序算法 下面这张表摘自博客http://blog.csdn.net/whuslei/arti ...
- 各大知名区块链交易所链接及API文档链接
区块链交易所链接 火币网(Huobi):https://www.huobi.br.com/zh-cn/ API文档:https://github.com/huobiapi/API_Docs/wiki ...
- 使用python脚本实现统计日志文件中的ip访问次数
使用python脚本实现统计日志文件中的ip访问次数,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下 适用的日志格式: 106.45.185.214 - - [06/Aug/2014: ...
- Html-根据不同的分辨率设置不同的背景图片
@media only screen and (min-width: 1024px) //当分辨率width >= 1024px 时使用1.jpg作为背景图片 { ...
- ABAP 创建function model 返回参数为内表类型
1:通过T-CODE se11 创建一个structure ZSTRU2. 2: 创建一个table type, 表名 ZTAB1. 3: 表的row type 选择 ZSTRU2 4: ...
- IOP知识点(3)-Modal.show
1.position 模态框初始位置.可设为字符串 "左位置 上位置" 或数组 [左位置, 上位置],规则如下: 左位置 可设为 left|center|right 三者之一,上位 ...
- zhaoyin
1.什么时候用到事务,单个update操作会用到事务吗? 银行转账 /**//*--使用事务--*/ use stuDB go --恢复原来的数据 --update bank set currentM ...
- [LeetCode] 130. Surrounded Regions_Medium tag: DFS/BFS
Given a 2D board containing 'X' and 'O' (the letter O), capture all regions surrounded by 'X'. A reg ...