1. 程式人生 > >QT 將UNICODE 字串轉換為 QString

QT 將UNICODE 字串轉換為 QString

問題:

最近在做QT日誌時,遇到了傳入的字元為漢字的UNICODE編碼的字串,需要將其還原為漢字,

例如

"\u542F\u52A8...“ 是中文字元啟動,這就是中文字元被轉換為UNICODE儲存的16進位制,現在需要轉換為原文字。

具體程式碼:

QStringList s;
QRegExp exp("\\u[0-9A-F]{4,}");
int nPos = exp.indexIn(msg,0);
 

        // 利用正則表示式,找出二進位制編碼

        while(nPos != -1)
{
s.append(exp.cap(0).mid(1));
nPos += exp.matchedLength();
nPos = exp.indexIn(msg, nPos);
}


QString strLocal;
foreach (const QString &t, s) 
{
QString str = t.toUShort(0,16);
strLocal.append(t.toUShort(0,16));
}

其中 msg就是傳入的UNICODE字元的二進位制編碼,如"\u542F\u52A8...“