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

window.location中的编码百分比

  •  6
  • krisrak  · 技术社区  · 11 年前

    当我使用window.location打开一个包含特殊字符的url时,它似乎对特殊字符进行了百分比编码,然后打开url。例如

    var url = "http://gramfeed.com/instagram/tags/kühl";
    window.location = url;
    

    这将导致打开一个URL为的页面:

    http://gramfeed.com/instagram/tags/k%C3%BChl
    

    而不是:

    http://gramfeed.com/instagram/tags/kühl
    

    如何在没有百分比编码字符的情况下正确打开URL

    这里有一个jsfiddle来处理代码: http://jsfiddle.net/krisrak/aSkMR/

    2 回复  |  直到 11 年前
        1
  •  3
  •   Yuriy Galanter    11 年前

    我认为问题不在于windows.location和您的JavaScript。问题在于gramfeed.com如何解释标签。在代码中尝试此操作:

    var url = "https://www.google.com/search?q=kühl"
    window.location = url;
    

    注意特殊字符保持未转换状态。

    现在尝试键入 http://gramfeed.com/instagram/tags/kühl 直接在浏览器地址栏中-URL被转换。

        2
  •  0
  •   sidonaldson    8 年前

    我也遇到过这个问题,但这是一个完全不同的问题,尽管症状是一样的。最后,我重定向到了一个桌面网站的URL,但对于手机来说,这在他们的服务器上被重定向到了他们的移动网站,然后它被编码了两次。

    因此,如果可能的话,在手机上直接重定向到移动网站总是值得的。

    希望这能帮助其他人:)