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
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 2无用