QT进行URL编码转换

2023-07-09  本文已影响0人  雯饰太一

URL编码也是百分比编码,Percent-encoding,在url中出现中文的时候,通常需要先进行百分比编码,才能够进行正常的网络请求。

相关知识点:

对于真正使用的时候,只需要知道就恶意了,不需要过多的了解编码的底层原理。

实际代码

//解码
QString DeCodeURL(const QString& u)
{
    QByteArray decode = QByteArray::fromPercentEncoding(u.toLocal8Bit());
    return QString::fromUtf8(decode);
}

//编码
QString EnCodeURL(const QString& u)
{
    QByteArray encode = u.toLocal8Bit();
    encode = encode.toPercentEncoding(":/?=");
    return QString(encode);
}

//测试
void URLCodeConvertTest()
{
    QString str_urlCode = QString::fromLocal8Bit("file:///C:/Data/%E4%BB%BF%E7%9C%9F%E6%8E%A8%E6%BC%94/%E8%AF%84%E4%BC%B0%E6%A8%A1%E6%9D%BF/De_fault.htm?a=10");
    QString str_url = DeCodeURL(str_urlCode);
    qDebug() << str_url;
    qDebug() << EnCodeURL(str_url);
}

其他

与此类似的,还有Unicode,转义字符等基础的编码,QT中都有相对应的方法,可以直接使用,通常在Json中会出现,需要转换为明文才能在UI上进行展示。

QT中的多行输入框,是可以直接展示Html的,如果是json中的内容是完整的网页,可以直接进行展示。

上一篇下一篇

猜你喜欢

热点阅读