韦德斯 2023-11-10 16:24 采纳率: 42.9%
浏览 20
已结题

qt c++中\x开头的utf-8 十六进制乱码

QT C++中使用system("wpa_cli -i wlan0 scan_results > ./wifilist");扫描wifi名字,发现里面有类似\xe9\x9f\xa6\xe5\xbe\xb7\xe6\x96\xaf这种的乱码,应该是中文名称导致的,请问怎么将这个乱码转化成中文呢

  • 写回答

2条回答 默认 最新

  • mideum 2023-11-10 16:38
    关注

    你上次问就告诉你用QByteArray::fromHex()啦,我简单的给你看QByteArray::fromHex()的效果

    QByteArray raw = "\\xe9\\x9f\\xa6\\xe5\\xbe\\xb7\\xe6\\x96\\xaf";
    QByteArray converted = QByteArray::fromHex(raw);
    QString name = QString::fromUtf8(converted);
    qDebug() << name;
    

    输出结果是"韦德斯"

    只是如果你是\x和非\x字符兼有的话你要自己读取判断一下,如果不是\x开头就直接读取一个字符,如果是\x开头就读取\x后面2个字符,然后用QByteArray::fromHex()转成一个字符,最后把拼成的QByteArray转成QString

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    1人已打赏
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 创建了问题 11月10日

悬赏问题

  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?