我想发送一个URI作为查询/matrix参数的值。 在将其附加到现有的URI之前,我需要根据RFC 2396对其进行编码。例如,给定input: http://google.com/resource?key=value1 & value2 我期望输出: http%3a%2f%2fgoogle.com%2fresource%3fkey%3dvalue1%2520%26%2520value2 java.net.URLEncoder和java.net.URI都不会生成正确的输出。 URLEncoder是用于HTML表单编码,它与RFC 2396不同.URI没有一次编码单个值的机制,因此无法知道value1和value2是同一个键的一部分。
在URL中,我应该使用%20还是+来编码空格? 例如,在下面的例子中,哪一个是正确的? www.mydomain.com?type=xbox%20360 www.mydomain.com?type=xbox+360 我们公司倾向于前者,但是使用带有"xbox 360" (和"UTF-8" )的Java方法URLEncoder.encode(String, String) ) 返回后者 。 那么,有什么区别?
如何编码查询参数在Java中的URL? 我知道,这似乎是一个显而易见的问题。 有两个细节我不确定: 空格是否应该被编码为“+”或“%20”? 在chrome中,如果我input“http://google.com/foo=?bar me”,chrome会将其更改为使用%20进行编码 将冒号“:”编码为%3B是否必要/正确? Chrome没有。 笔记: java.net.URLEncoder.encode似乎不起作用,它似乎是编码数据被提交表单。 例如,它将空格编码为+而不是%20 ,并对不需要的冒号进行编码。 java.net.URI不编码查询参数
有谁知道任何好的C ++代码,这样做?
<a href="#/search?query={{address}}" ng-repeat="address in addresses"> {{address}} </a> 如果我理解正确,将生成未经过url编码的链接。 什么是编码#/search?query={{address}}的正确方法? 示例地址是1260 6th Ave, New York, NY 。
如果我做 url = "http://example.com?p=" + urllib.quote(query) 它不编码/到%2F (打破OAuth标准化) 它不处理Unicode(它抛出一个exception) 有更好的图书馆吗?
我知道非标准的%uxxxxscheme,但这并不是一个明智的select,因为该scheme已被W3C拒绝。 一些有趣的例子: 心的性格。 如果我在浏览器中input: http://www.google.com/search?q=♥ 然后复制并粘贴它,我看到这个URL http://www.google.com/search?q=%E2%99%A5 这使得它看起来像Firefox(或Safari)正在这样做。 urllib.quote_plus(x.encode("latin-1")) '%E2%99%A5' 这是有道理的,除了不能用Latin-1编码的东西,就像三重点字符。 … 如果我input的url http://www.google.com/search?q=… 进入我的浏览器,然后复制并粘贴,我得到 http://www.google.com/search?q=%E2%80%A6 背部。 这似乎是做的结果 urllib.quote_plus(x.encode("utf-8")) 这是有道理的,因为…不能用Latin-1编码。 但是接下来我不清楚浏览器是如何知道是用UTF-8还是用Latin-1来解码。 由于这似乎是模棱两可的: In [67]: u"…".encode('utf-8').decode('latin-1') Out[67]: u'\xc3\xa2\xc2\x80\xc2\xa6' 工作,所以我不知道如何浏览器找出是否使用UTF-8或Latin-1解码。 用我需要处理的特殊字符做什么是正确的?
Server.UrlEncode和HttpUtility.UrlEncode是否有区别?
什么是最好的JavaScripturl解码工具? 编码也不错,并与jQuery的工作是一个额外的好处。
我正在尝试编写一个bash脚本进行testing,它需要一个参数并通过curl将其发送到网站。 我需要URL的编码值,以确保特殊字符处理正确。 什么是最好的方法来做到这一点? 到目前为止,这是我的基本脚本: #!/bin/bash host=${1:?'bad host'} value=$2 shift shift curl -v -d "param=${value}" http://${host}/somepath $@