Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从浏览器复制UTF-8 URL';s地址栏,只提供丑陋的编码_Url_Browser_Copy Paste_Url Encoding - Fatal编程技术网

从浏览器复制UTF-8 URL';s地址栏,只提供丑陋的编码

从浏览器复制UTF-8 URL';s地址栏,只提供丑陋的编码,url,browser,copy-paste,url-encoding,Url,Browser,Copy Paste,Url Encoding,当我从浏览器的地址栏(几乎任何操作系统上的任何浏览器)复制一个UTF-8 URL时,然后尝试将其粘贴到另一个文本字段中(例如在facebook或twitter上发布),它只会给出解码后的URL,这使得它很难看。例如,在地址栏中,URL如下所示: 但当试图复制并粘贴到任何其他位置时,它会给出以下丑陋的url: &如果我想得到原始的URL在任何地方使用它,我用这种方式解码它 问题是:有没有一种简单直接的方法来复制此类URL,并在没有这种可怕过程的情况下粘贴它?(可能是使用chrome扩展或其他什

当我从浏览器的地址栏(几乎任何操作系统上的任何浏览器)复制一个UTF-8 URL时,然后尝试将其粘贴到另一个文本字段中(例如在facebook或twitter上发布),它只会给出解码后的URL,这使得它很难看。例如,在地址栏中,URL如下所示:

但当试图复制并粘贴到任何其他位置时,它会给出以下丑陋的url:

&如果我想得到原始的URL在任何地方使用它,我用这种方式解码它


问题是:有没有一种简单直接的方法来复制此类URL,并在没有这种可怕过程的情况下粘贴它?(可能是使用chrome扩展或其他什么)

我现在找到的最好答案是使用这个chrome扩展:


这使我只需单击一下即可复制url(处于解码状态):)

从地址栏复制得到的URI是浏览器可以提供给您的唯一有效URI

从RFC 3986(和其他URL RFC):

URI是一个非常有限的集合中的字符序列: 基本拉丁字母表中的字母、数字和一些特殊字母 人物

所以:
https://www.chaino.com/وذككو
是无效的URI,但却是有效的IRI(国际资源标识符),在通过HTTP请求服务器时,浏览器会将其转换为有效的URI(HTTP不允许IRI,仅允许URI)

TL;DR:您的浏览器提供了您所期望的:一个可以在任何地方使用的有效URI,而不是仅在此处和此处支持的IRI


PS如果“例如facebook或twitter”很友好,他们可能会向用户显示一个可读的表单,所以不用担心提供一个编码表单。

您可以选择URL而不选择scheme(例如
http://
),然后复制它。这将给你你所期望的


注意,要点是只选择链接的一部分。例如,您可以选择整个URL而不使用第一个字符,然后手动添加。

您可以在地址栏中的URL末尾添加“空格”,然后您可以全部选择并直接复制。

您可以使用Chrome扩展名,如下所示:


在Firefox 53+中,您可以将
浏览器.urlbar.decodeursoncopy
设置为
true
使用此url创建书签:
javascript:console.log(提示符('copy(Control+C)this link:',decodeURIComponent(window.location))

单击该页面上的书签。

您可以使用我创建的书签。 它是:

  • 为您提供了一个保留URL终止符编码的选项,例如,以点结尾的链接将对该点进行编码,并且电子邮件客户端不会错误地将该点识别为句子/URL终止符


  • 如果你喜欢我的工作,那么请捐赠一些款项。

    不存在“解码状态的URL”,请参阅我的回复。但是你仍然可以称它们为IRIs,而不是URL。关于命名,这对我来说没什么大不了的,我只是想要URL的可读形式,这里的Chrome扩展对我来说做得很好:)如果你不想要另一个扩展,请看我的答案。你主要谈论的是命名,但我只是希望URL的可读形式能够方便地与其他人共享,我在回答中使用的chrome扩展正是我想要的。他不是在谈论命名,而是关于标准,这是一个巨大的区别。即使答案不能解决提问者的问题,它仍然包含关键信息,我很高兴它就在这里。尽管如此,大多数人还是使用浏览器来处理链接,我想对于大多数浏览器来说,IRI和URI在功能上是相同的。我不知道它可以工作:),只是有一个问题,通常
    http://
    是不可见的,所以如果域不是以子域(即
    www.
    )开始的,就像问题中的例子一样,那么我就不能只复制其中的一部分了,有解决办法吗?复制除第一个字符以外的所有字符,然后手动添加。太好了,谢谢你分享这个:),但是你能不能在答案中反映这一点,作为其他人的完整答案。太神了为我节省了大量复制URL和解码的时间。另一个很好的解决方案见。@HansGinzel看起来很有希望,问题是这个问题只与Firefox相关,而这里的一些答案更一般,感谢Chrome 61上的一些奇怪原因,它只在
    https
    网站上工作,但Chrome66中的http
    http
    显然改变了它。它停止工作:(适用于firefox 65.0.2。适用于firefox 82.0.2 64 Opera web浏览器没有此类问题,尽管它基于ChromiumWoow,firefox可以做到这一点!:)。。如果这不是Firefox唯一的答案,我现在就接受了。。我知道有时候可能会有风险,但这个选项本身看起来很棒,谢谢。好吧,这并不是对主要问题的完整回答,这不仅仅是关于Firefox的。另外,Android上的Firefox没有这个功能,很遗憾,它只是关于桌面的:2020年5月20日-它在最新的chrome上工作。谢谢Ilya@ronnefeldt,请您删除/隐藏/编辑此答案,因为其中的链接不再起作用,返回404。@Ilyaigportov Done。谢谢你让我知道!:)@ronnefeldt,你可以,请,而不是使用一个直接链接“复制Unicode URL”更改为一个链接到我的答案下面在这个线程。我很高兴能有一些投票支持我创建的扩展。这对我来说并不重要,我只是喜欢投票。非常感谢。