【问题标题】:Reading percentage encoded url with umlauts with Qt使用 Qt 读取带有变音符号的百分比编码 url
【发布时间】:2019-09-10 06:22:01
【问题描述】:

我正在尝试使用 Qt 读取带有变音符号的百分比编码网址,例如 äüö,...,

QString str = "Nu%CC%88rnberg"
qDebug() << QUrl::fromPercentEncoding(str.toUtf8());

但输出是Nu¨rnberg 而不是Nürnberg。如何以这种形式正确解码带有变音符号的网址?

问候,

【问题讨论】:

  • 您的代码看起来正确。您在哪里看到不正确的字符串?如果将其输出到终端窗口,则可能是它无法显示 unicode 字符。
  • 终端窗口的输出是问题。

标签: qt qstring urldecode qurl


【解决方案1】:

我已经完成了这个问题,但我对结果有点困惑。首先,如果你想使用字母ü 使用%C3%BC 而不是%CC%88(根据https://www.w3schools.com/tags/ref_urlencode.asp)。所以你需要

QString str = "N%C3%BCrnberg";
QString encoded = QUrl::fromPercentEncoding(str.toUtf8());

但是如果你在qDebug() 流中输出它,你可以获得不同的符号(我猜这是因为你的默认系统编码)。但是,如果您在 GUI 元素中输出它,您将拥有 ü 符号

QMessageBox::information(this, "", encoded);

this 表示主窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-07
    • 2015-05-08
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多