ari*_*nai 10 browser character-encoding address-bar
当我从地址栏中复制一个通常需要编码的字符的链接时,复制的链接将包含编码文本而不是解码(这是视觉上看到的)。
但是,如果我编辑(并还原)URL 中的某些内容,例如添加空格和删除它 - 复制的文本将被解码。
为什么是这种行为?这背后有什么原因,还是随意的?
注意:根据我的检查 - 这是 Chrome 和 Firefox 上的行为,但不是 Edge(它将复制解码的文本)。
有没有办法改变行为并始终复制(不错的)解码后的 URL?
(至少对于 Chrome)
例子:
浏览此地址会显示https://he.wikipedia.org/wiki/??????
在地址栏中,但复制时会复制https://he.wikipedia.org/wiki/%D7%A2%D7%95%D7%92%D7%99%D7%99%D7%94
。
在复制之前编辑某些内容会改变这种行为。
URL 编码格式是在 Web 上进行通信的应用程序实际使用的格式。默认情况下,它以这种方式从 Firefox/Chrome 复制,以可能保证复制的 URL 的可用性。
URL 在编辑时“更改”的原因几乎可以肯定是因为浏览器检测到 URL 字符串中的差异,这可能需要再次编码。
有没有办法改变行为并始终复制(好的)解码的 URL(至少对于 Chrome)?
火狐
这个超级用户问题有一个答案,指出您可以在 Firefox 53+ 中设置browser.urlbar.decodeURLsOnCopy
to True
under的值about:config
以自动复制 URL 的非 URL 编码形式。这对我有用,尽管我没有在最新版本的 Firefox 上测试它。
铬合金
2019 年 12 月更新
我没有找到 Chrome 的任何内部设置,但我确实在Stack Overflow上找到了一个名为Copy Unicode URLs的 Chrome 扩展程序的建议(在此更新时最后更新于 2019 年 1 月),它似乎复制了您的示例 URL 而不进行编码,正如所宣传的那样。
关于此扩展程序的一个小警告,虽然嵌入在页面中的链接在Copy unicode URL
右键单击菜单中有一个选项,但必须通过左键单击位于多功能框右侧的复制 Unicode URL 扩展程序图标来复制“地址栏”URL(设置菜单附近)。
如果您使用的是 Windows,可能还值得注意的是,您可以将一组 URL 编码的 URL 粘贴到Notepad++ 中,选择 Edit ? 选择 All ( Ctrl+ A) 然后(假设您有可用的默认插件)使用 Plugins ? MIME 工具 ? URL Decode 一次性解码所有 URL。
小智 4
这是网络浏览器特意实现的且非常有用的功能:
\n\n还有一部分您可能没有意识到:当输入 时https://he.wikipedia.org/wiki/\xd7\xa2\xd7\x95\xd7\x92\xd7\x99\xd7\x99\xd7\x94
,网络浏览器将其转换为https://he.wikipedia.org/wiki/%D7%A2%D7%95%D7%92%D7%99%D7%99%D7%94
在后台将其转换,然后再在线传输。
这一切都是有原因的。我将省略详细信息,只告诉您底线:编码的 URL 是真实的 URL。正如您所说,“好”的 URL 只是为了简化您的生活。因此,后者可能无法在所有支持网络的应用程序中工作,而前者则保证可以工作。
\n\n附录:您甚至可能无法通过电子邮件、即时消息或短信正确发送“好”URL!这实际上取决于您使用的服务和您的收件人使用的服务是否支持 Unicode。(Gmail、Hotmail、Skype 和 Telegram 都可以。我不确定 Sprint、Verizon 或 AT&T 的 SMS 服务。)
\n