1

エンコードされた URL を含む QString があります。つまり、ブラウザに挿入する URL です。たとえば、次のようになります。

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

QUrlのように作成すると

QUrl(string);

何をエンコードし、何をエンコードしないかをランダムに決定します。この場合、「?」を残します。「&」はデコードされますが、再びパーセント記号がエンコードされます。したがって、ターゲットの php アプリケーションは、「some encoded」ではなく「some%20encoded」を受け取ります。

これは、URL を自動的に解析して修正しようとする QT の機能のようです。この機能は、次の呼び出しで無効にできます。

QUrl(string, QUrl::StrictMode);

これはqt 5+では完全に機能しますが、qt 4ではコンパイルしても、StrictModeパラメーターを指定しなかった場合と同じ動作をします。自分でエンコードした文字列から URL を作成するにはどうすればよいですか?

4

1 に答える 1

3

あなたが探しているのは

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

QURL ドキュメント

于 2013-09-25T09:31:23.377 に答える