[QString] 新增 UrlMerge 函数说明

QString 新增了一个 UrlMerge 函数用来替代Delphi自身 System.Net.UrlClient 单元提供的 TURI.PathRelativeToAbs 函数。为啥要替换它?理由只有一个:它的解析支持有点小问题,所以自己重写一个。

URL 相对路径转换为绝对路径有几种情况:

  • 相对路径实际上是一个带有协议的绝对路径,如“https://blog.qdac.cc/?p=3872” ,这种情况下两者都没有问题;
  • 相对路径是使用当前协议的绝对路径,如“//?p=3872”,这种情况下 TURI 的结果是错的;
  • 相对路径是绝对路径,如“/?p=3872”,这种情况两者都没有问题;
  • 相对路径真的是相对路径,如“?p=3872”,这种情况两者都没有问题。

也就是说,上面的四种情况实际上只有第二种情况系统的是错的,所以 QString 提供了一个改进版的函数,欢迎大家测试。

UrlMerge 函数只有两个参数,第一个是原始的基准URL,第二个是相对路径。使用时很简单,直接传入就好了,就不再举例子了。

分享到: