2012-12-12 190 views
0

我試圖將具有特殊字符的QString轉換爲常量字符,但我沒有成功。 我的功能是:具有特殊字符的QString編碼

void class::func(const QString& fileName) // fileName = "â.tmp" 
{ 
    qDebug()<< fileName; // display "â.tmp" 
    const char* cfileName = fileName.toAscii().data(); 
    qDebug() << cfileName; // display "a?.tmp" 
} 

qDebug()< <文件名顯示的真實值是「â.tmp」,但將其轉換爲const一個char *後,我沒有成功有正確的值。

在我第二次嘗試使用

const char* cfileName = QString::fromUtf8(fileName.toAscii().data()); 

,但我不還是有正確的價值,它顯示了同樣的事情:a?.tmp

我該如何解決這個問題?

回答

0

ASCII字符集沒有字符â,所以你試圖做的是不可能的。

你可以試試這個:

const char* cfileName = = fileName.toUtf8().data();