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中的内容是完整的网页,可以直接进行展示。