【问题标题】:Asp.net adding weird encoded chars to urlAsp.net 将奇怪的编码字符添加到 url
【发布时间】:2021-04-01 01:10:04
【问题描述】:

我有这个链接,网址为/laws/document?ref=S-AL1_2_36458

点击它时,会添加奇怪的字符。字符是:

%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B

所以网址将结束:

/laws/document?ref=S-AL1_2_36458%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B%E2%80%8B

js(使用encodeURI())中对原始链接进行编码时,它会返回相同的奇怪链接。但是,当仅编码“参考值”时 这是S-AL1_2_3645 它不会添加奇怪的字符

【问题讨论】:

    标签: asp.net asp.net-core url decode encode


    【解决方案1】:

    %E2%80%8B 是 Unicode 字符 ZERO WIDTH SPACE (U+200B) 的 URL 编码序列。这在您的网址中重复出现了 5 次。

    看来,链接实际上不仅仅是/laws/document?ref=S-AL1_2_36458,而是/laws/document?ref=S-AL1_2_36458<ZWSP><ZWSP><ZWSP><ZWSP><ZWSP>,然后浏览器将对其进行正确编码以发出请求。如果这是被导航到的实际 URL,则此行为是预期的并且是正确的。

    如果这不是您想要的 URL,我建议您检查链接的 HTML。如果这是静态 HTML,则检查 URL 末尾是否有任何字符并将其删除。由于它们是零宽度的空格,它们实际上是不可见的,但仍然存在(例如,在文本编辑器中,移动光标时会注意到它们)。如果这是生成的链接,请检查值的来源并尝试修剪源周围的任何空白。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 2021-01-22
      • 2011-12-14
      相关资源
      最近更新 更多