2016-11-18 60 views
0

如果我把url http://www.äsdf.de/bla/bla改成QUrl,那我該如何用原始符號恢復url?Punycode的QString QUrl

沒關係QUrl會修復一些字符,但我想在url中顯示原始äsdf而不是xn--sdf-pla

我知道的QString QUrl::fromAce(const QByteArray &domain),但它需要QByteArray而不是QUrl實例。

供參考:我使用C++和Qt 5.5.1。

回答

1

您可以使用QUrl::toDisplayString使用默認PrettyDecoded格式選項,或任何其他值之間enum ComponentFormattingOption

QUrl url{"http://www.äsdf.de/bla/bla"}; 

QString original_string = 
    url.toDisplayString(); // default is QUrl::PrettyDecoded 

QString original_string_with_encoded_spaces = 
    url.toDisplayString(QUrl::EncodeSpaces); 
+0

你的樣品工作正常,但是當我使用另一個URL帶俄語字符的「http://привет.рф 「,然後漂亮的打印失敗(仍然顯示Punycode)。當我使用「http://привет.com」時,那就沒關係。在Qt 5.6.2上測試。 – ilya