本文参考Qt进行UrlEncode/UrlDecode(URL编码/解码)
现在说一说Qt中的两个类,一个是QByteArray,一个是QUrl,他们都有一对进行url编解码的函数
QByteArray QByteArray::?toPercentEncoding(const QByteArray & exclude = QByteArray(), const QByteArray & include = QByteArray(), char percent = '%') constQByteArray QByteArray::?fromPercentEncoding(const QByteArray & input, char percent = '%') [static]
QString QUrl::?fromPercentEncoding(const QByteArray & input)QByteArray QUrl::?toPercentEncoding(const QString & input, const QByteArray & exclude = QByteArray(), const QByteArray & include = QByteArray()) [static]
其中toPercentEncoding是进行url编码,fromPercentEncoding进行url解码,使用QUrl的url编解码函数,要求必须是完整的url地址,(若没有类似的http:// ,则会解码失败QUrl: QUrl::FullyDecoded is not permitted when reconstructing the full URL)既带http:// 这样的http协议头,进行编解码时忽略http:// 。
而使用QByteArray的url编解码函数,则是进行全编解码,即会对 http:// 这个协议头中的特殊字符编码。