我得到一个url字符串,并希望将其转换为合法的http网址:
例如:
"http://one/two/three%four/five#five?six seven" 应该变成 "http://one/two/three%25four/five%23five?six%20seven"
但是,HttpUtility.UrlEncode没有帮助,因为它编码整个字符串(包括合法的"://").
提前致谢
我已经搜索过高和低的解决方案.我有一个动态多维数组我需要分解和urlencode.项目数量将发生变化,但它们将始终具有相同的密钥.
$formFields = Array (
[0] => Array ( [form_name] => productID [form_value] => 13 )
[1] => Array ( [form_name] => campaign [form_value] => email@gmail.com )
[2] => Array ( [form_name] => redirect [form_value] => http://example.com ) )
Run Code Online (Sandbox Code Playgroud)
每个数组都有一个表单名称和一个表单值.
这就是我想要达到的目的:
$desired_results =
productID => 13
campaign => email@gmail.com
redirect => http://example.com
Run Code Online (Sandbox Code Playgroud)
每当我尝试将它们拆分时,我最终得到:form_name => productID或类似的东西.
我正在尝试取结果,然后对它们进行urlencode:
productID=13&campaign=email&gmail.com&redirect=http://example.com&
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方便和实用的方法来将编码值添加到Ruby中的URL查询字符串.目前,我有:
require 'open-uri'
u = URI::HTTP.new("http", nil, "mydomain.example", nil, nil, "/tv", nil, "show=" + URI::encode("Rosie & Jim"), nil)
p u.to_s # => "http://mydomain.example/tv?show=Rosie%20&%20Jim"
Run Code Online (Sandbox Code Playgroud)
这不是我正在寻找的,因为我需要得到
"http://mydomain.example/tv?show=Rosie%20%26%20Jim",所以这个show=值不会被截断.
Open :: URI有另一种方法可以做到这一点吗?如果没有,可以使用任何其他标准的Ruby或gem吗?
目前,我正在尝试寻找一种解码来编码包含unicode字符的高棉语字符,高棉语.我尝试过使用php内置函数urlencode()并给出结果:例如:http://www.example.com/? kwd = Mac + Book + Pro +នៅប្រទេសយើង
虽然我使用Google搜索进行了测试,但结果是:https: //www.google.com.kh/#hl=en&sclient=psy-ab&q=Mac+Book+Pro+%E1%9E%93%E1%9F%85 %E1%9E%94%E1%9F%92%E1%9E%9A%E1%9E%91%E1%9F%81%E1%9E%9F%E1%9E%99%E1%9E%BE%E1 %9E%84&OQ = MAC +书+临+%E1%9E%93%E1%9F%85%E1%9E%94%E1%9F%92%E1%9E%9A%E1%9E%91%E1%9F %81%E1%9E 9F%%E1%9E%99%E1%9E%BE%E1%9E%84
怎么做?希望有人在这里帮助我.提前致谢!
为什么这个网址会在400中解决 - 错误请求?
HTTP://本地主机:2785/API /股票/ Web.App.QuotesReaders /搜索= SE%3Aabb
我的环境是Visual Studio 2010,MVC 4和使用的控制器是WebApiController.
%3A是URL编码的冒号.
解
这有一些原因:
HTTP://本地主机:2785/API /股票的className = Web.App.QuotesReaders&搜索= SE%3Aabb
...这意味着,我无法在global.asax.cs中指定此路由:
/api/ticker/{className}/{search}
Run Code Online (Sandbox Code Playgroud)
......也不是......
/api/ticker/{className}/search={search}
Run Code Online (Sandbox Code Playgroud)
... 但是这个 ...
/api/ticker
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息,请访问:http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx
PostgreSQL/plpgsql中有没有与javascripts encodeURI相同的函数/存储过程?
这是什么意思?Javascript有一个方便的内置函数来编码任何类型的URL:
encodeURI(url) - >返回已编码的url
例如:
encodeURI('http://hu.wikipedia.org/wiki/São_Paulo')- >返回一个String"http://hu.wikipedia.org/wiki/S%C3%A3o_Paulo"
我寻找完全一样的.
我不想单独编码每个参数.我不希望像javascript encodeURIComponent这样的函数不一样.上面的例子产生了不同的输出
encodeURIComponent('http://hu.wikipedia.org/wiki/São_Paulo')
Run Code Online (Sandbox Code Playgroud)
- > "http%3A%2F%2Fhu.wikipedia.org%2Fwiki%2FS%C3%A3o_Paulo"
它编码整个字符串而不仅仅是路径部分.所以这不是我想要的.我需要一个plpgsql函数,它导致javascript函数encodeURI的等效输出.
谢谢!
我使用Java Amazon SDK与S3一起存储上传的文件.我想保留原始文件名,我把它放在密钥的末尾,但我也使用虚拟目录结构 - 类似于<dirname>/<uuid>/<originalFilename>.
问题是,当我想使用api生成预先下载的URL以供下载时:
URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);
return url.toExternalForm();
Run Code Online (Sandbox Code Playgroud)
sdk url转义整个键,包括斜杠.虽然它仍然有效,但这意味着下载文件的名称包括整个密钥,而不仅仅是最后的原始文件名位.我知道应该可以在不转义斜杠的情况下执行此操作,但我正在尝试避免重写SDK中已有的大量代码.这有一个共同的解决方案吗?我知道我使用了遵循相同模式的Web应用程序,并且没有斜杠转义问题.
我正在尝试使用IIS 7.5,应用程序请求路由 3.0(ARR)和URL重写 2.0 为Jenkins设置反向代理。
我的代理服务器大多数都在工作,但是遇到包含百分号(%)的URL的问题。
无论我如何尝试,代理都坚持对重写的URL中的百分号进行解码或重新编码。
这就是我想要重写URL的方式:
http://my.proxy/a%2Fb -> http://my.host:8080/a%2Fb
Run Code Online (Sandbox Code Playgroud)
这是实际重写URL的方式:
http://my.proxy/a%2Fb -> http://my.host:8080/a/b
- or -
http://my.proxy/a%2Fb -> http://my.host:8080/a%252Fb
Run Code Online (Sandbox Code Playgroud)
如何获得IIS \ ARR \ Rewrite来停止对重写的URL进行重新编码?
我尝试过的事情:
普通的反向代理(将URL重写为http://my.host:8080/a/b):
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<action type="Rewrite" url="http://my.host:8080/{R:1}" />
</rule>
使用UNENCODED_URL服务器变量(将URL重写为http://my.host:8080/a%252Fb):
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{UNENCODED_URL}" pattern="/(.*)" />
</conditions>
<action type="Rewrite" url="http://my.host:8080/{C:1}" />
</rule>
只需直接输入网址(作为测试-还将网址重写为http://my.host:8080/a%252Fb):
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" …
我正在形成一个帖子请求.
mydict = {'key1': 'value@1', 'key2': 'value@2'}
encoded_dict = urllib.urlencode(mydict)
Run Code Online (Sandbox Code Playgroud)
这将导致
key1=value%401&key2=value%402
Run Code Online (Sandbox Code Playgroud)
我真正想要的是
key1=value@1&key2=value@2
Run Code Online (Sandbox Code Playgroud)
还有其他方法吗?
urlencode ×10
php ×2
amazon-s3 ×1
arr ×1
arrays ×1
asp.net ×1
asp.net-mvc ×1
iis ×1
java ×1
open-uri ×1
plpgsql ×1
postgresql ×1
python ×1
python-2.7 ×1
ruby ×1
ruby-1.9.3 ×1
uri ×1
url ×1
xslt ×1
xslt-2.0 ×1