最近需要把JSON格式中的一些資料拿出來
看起來像是這樣:
....
"text": "\u4e00\u6bb5\u5149\u5f71,\u4e00\u6bb5\u65c5\u884c\uff0e\n\n #\u4e58\u8457\u5149\u5f71\u53bb\u65c5\u884c\n #travel\n#light",
.....
(前後文就不特別放在這邊了,不重要)
那這種\u4e00\u6bb5... 取下來會是個QByteArray ,先把它們轉成QString
但還是一大串阿! 於是再用QString裡面的split -> QStringlist來承接。
所以現在可以切開變成u4e00,但這還是一個UTF8,所以我們需要再做調整
上網找了很多方法都沒有找到,但是找到了一篇 這裡 於是終於找到方法了!
解決方法其實很簡單:
不管怎麼弄,反正把\u (escape) 這兩個字元弄掉(QString::replace / QString:: remove)
剩下4e00
QString t1 = "4e00";
int Hex = t1.toInt(0, 16);
QString t2 = QChar(Hex);
你會發現t2 就轉成你要的字元了!
如此簡單就解決的困難的問題,就是這樣(我有簡化掉那篇的方法)
End