代码之家  ›  专栏  ›  技术社区  ›  preachpp

如何从特定的损坏URL中提取正确的URL?

  •  -1
  • preachpp  · 技术社区  · 11 月前

    这是我想访问的PDF的URL:

    http:\/\/www.mahakavya.com\/wp-content\/uploads\/2021\/02\/\u0905\u0925\u0930\u094d\u0935\u0935\u0947\u0926-hindi.pdf
    

    但是当我在网络浏览器中键入它时,我收到了404错误。有人可以通过修改上述内容给出正确的URL来访问所需的PDF吗?

    我尝试删除反斜杠,使修改后的URL看起来像:

    http://www.mahakavya.com/wp-content/uploads/2021/02/\u0905\u0925\u0930\u094d\u0935\u0935\u0947\u0926-hindi.pdf
    

    然而,它仍然不起作用,而来自同一网站的类似PDF链接却能顺利运行: https://www.mahakavya.com//wp-content//uploads//2021//02//Atharvaveda-English.pdf

    问题似乎出在用 u 如下图所示: \u0905\u0925\u0930\u094d\u0935\u0935\u0947\u0926

    1 回复  |  直到 11 月前
        1
  •  -1
  •   Gene    11 月前

    HTTP服务器用于指定路径的URI不允许对非ASCII字符使用这种语法(请参见 RFC 3986 ).

    要将这些字符传输到HTTP服务器,您需要应用百分比编码。

    例如, \u0905 实际上是角色 ठ,将表示为 %E0%A4%85 以百分比编码。

    您可能从某个调试器或序列化JSON中获取了初始字符串,实际字符串将不包含反斜杠或 \u 代表。然而,您可能需要应用百分比编码。您的浏览器会自动执行此操作,但HTTP客户端库不一定。

    对于百分比编码,您的SDK通常会提供一个实用类,具体取决于您的技术。