2013-09-25 80 views
1

創建QUrl我有一個包含編碼的URL,這意味着爲QString,因爲你將它插入到瀏覽器,例如網址:我如何從編碼的URL

QString string = "http://domain.tld/index.php?some%20encoded&another%20encoded"; 

當我創建QUrl喜歡

QUrl(string); 

它隨機決定什麼應該編碼,什麼不應該,在這種情況下,它離開「?」和「&」解碼,但重新編碼百分比符號。所以目標php應用程序會收到「一些%20編碼」而不是「某些編碼」。

這似乎是QT的一些功能,當它自動嘗試解析「並修復」網址。此功能可以通過調用

QUrl(string, QUrl::StrictMode); 

這完全在QT 5+但是在QT 4,儘管它編譯,它具有相同的行爲,如果我沒有提供StrictMode參數被禁用。我怎樣才能從我自己編碼的字符串中創建url,而不需要進一步的編碼?

回答

3

什麼是你正在尋找的是

QUrl QUrl::fromEncoded (const QByteArray &input) [static] 

QUrl doc