Possible duplicate QuestionQtのQUrlQueryは、私は次のようにクライアントに電子メールで送信されますリセットリンク/トークンを生成していますQbytearrayトークン
を抽出します。
QByteArray token;
token.resize(crypto_pwhash_SALTBYTES);
randombytes_buf(token.data(), crypto_pwhash_SALTBYTES);
QUrlQuery token_url("http://localhost:8080/reset/staff");
token_url.addQueryItem("token", token);
token_url.query(QUrl::FullyEncoded).toUtf8();
これは正しい出力を生成するために表示されます。私はトークンQByteArrayを必要とする保存されたハッシュに対してリセット要求を認証するために
http://localhost:8080/reset/staff&token=pc%22%EF%BF%BD%C6%9Fsktx%EF%BF%BD!%06t%5C%0B
を。
QByteArray path = request.getPath();
qDebug() << path;
QUrlQuery token_url(path);
QString token(token_url.queryItemValue("token"));
qDebug() << token;
qDebug() << QUrl::fromPercentEncoding(path);
Firefoxで貼り付けられたURLを含む出力は、私は私はおそらく犬unsigned char型のConverstionをやっている理解
"/reset/staff&token=pc\"\xEF\xBF\xBD\xC6\x9Fsktx\xEF\xBF\xBD!\x06t\\\x0B"
"pc\"�Ɵsktx�!%06t\\%0B"
"/reset/staff&token=pc\"�Ɵsktx�!\u0006t\\\u000B"
ちんぷんかんぷんです。
QBytearraysをQUrlQueryに出入りするための洗練された方法は何ですか?
私はいくつかのプログラマーが独自のURLパーサーを書いているのを見たことがありますが、それは過剰と思われます。