来自Punycode QUrl的QString

时间:2016-11-18 12:03:15

标签: c++ qt qt5 punycode qurl

如果我将网址http://www.äsdf.de/bla/bla放入QUrl,我该如何使用原始符号恢复网址?

QUrl可以修复某些字符,但我希望在网址中显示原始äsdf而不是xn--sdf-pla

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

1 个答案:

答案 0 :(得分: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);