在Qt中将QString转换为ASCII值,反之亦然
Converting QString to Ascii value & Vice Versa in Qt
我有一个QString StrData = "abcd"
,我想获取该字符串的十六进制Ascii
值,反之亦然。
例如,来自"abcd" to "61 62 63 64"
和"61 62 63 64" to "abcd"
我设法以十六进制获得 Ascii 值,但不知道如何取回它
Qstring StrData = "abcd";
Qstring HexStrData;
for (int i = 0; i < StrData.length(); i++) {
HexStrData.append(Qstring::number(StrData.at(i).unicode(), 16));
HexStrData.append(" ");
}
要进行第一次转换,您可以使用以下方法:
QString StrData = "abcd";
qDebug()<<"before "<< StrData;
QStringList numberString;
for(const auto character: StrData){
numberString << QString::number(character.unicode(), 16);
}
QString HexStrData= numberString.join(" ");
qDebug()<<HexStrData;
对于第二种情况要简单得多,如下所示:
QString str = QByteArray::fromHex(HexStrData.remove(" ").toLocal8Bit());
qDebug()<<str;
输出:
before "abcd"
"61 62 63 64"
"abcd"
示例
QString hex("0123456789ABCDEF");
QString strStr("abcd");
QString hexStr;
for (int ii(0); ii < strStr.length(); ii++)
{
hexStr.append(hex.at(strStr.at(ii).toLatin1() >> 4));
hexStr.append(hex.at(strStr.at(ii).toLatin1() & 0x0F));
}
qDebug() << hexStr;
QByteArray oldStr = QByteArray::fromHex(hexStr.toLocal8Bit());
qDebug() << oldStr.data();
显示:
"61626364"
abcd
相关文章:
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- 在C++中,将int值赋给enum,反之亦然
- 为什么我的C++程序的程序集输出充满了 .ascii,没有汇编代码?
- 有没有办法通过使用十进制 ASCII 代码自动类型扣除来获取字符?
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- ascii 和 unicode 在处理级别有什么区别吗?
- 在C++中使用 ASCII 代码将输入从小写转换为大写
- 弄清楚如何在C++中将整数读入 ASCII
- 如何在 c++ 中将所有大写字母转换为字符串中的小写字母,反之亦然?
- 将通用引用强制转换为可调用的 void 指针,反之亦然
- 用非原子更新原子变量,反之亦然
- 如何修复艺术ASCII,我点击一个字母就可以了,但输入一个阶段艺术出来了
- 使用指针将 ASCII 值添加到整数
- 用于 ASCII 的环绕式 C++
- RE2 不匹配非 ASCII 字符
- 在Qt中将QString转换为ASCII值,反之亦然
- 在C++中构建ASCII到二进制的代码,反之亦然,并遇到了一个奇怪的错误
- 我可以使用什么winapi C函数调用来将unicode转换为ascii,反之亦然
- 将ASCII转换为Unsigned Int,反之亦然