标签: url-encoding

urlencoded正斜杠正在破坏URL

关于系统

我的项目中有这种格式的URL: -

http://project_name/browse_by_exam/type/tutor_search/keyword/class/new_search/1/search_exam/0/search_subject/0
Run Code Online (Sandbox Code Playgroud)

其中关键字/类对意味着使用"class"关键字进行搜索.

我有一个常见的index.php文件,它为项目中的每个模块执行.只有一个重写规则可以从URL中删除index.php: -

RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA]
Run Code Online (Sandbox Code Playgroud)

我在阅读搜索URL时准备搜索URL和urldecode()时使用urlencode().

问题

只有正斜杠字符会破坏导致404页面未找到错误的URL.例如,如果我搜索one/twoURL是

http://project_name/browse_by_exam/type/tutor_search/keyword/one%2Ftwo/new_search/1/search_exam/0/search_subject/0/page_sort/
Run Code Online (Sandbox Code Playgroud)

我该如何解决?我需要将index.php隐藏在URL中.否则,如果不需要,那么正斜杠就没有问题了,我可以使用这个URL: -

http://project_name/index.php?browse_by_exam/type/tutor_search/keyword/one
%2Ftwo/new_search/1/search_exam/0/search_subject/0
Run Code Online (Sandbox Code Playgroud)

.htaccess url-rewriting url-encoding http-status-code-404

70
推荐指数
3
解决办法
11万
查看次数

NameValueCollection到URL查询?

我知道我能做到这一点

var nv = HttpUtility.ParseQueryString(req.RawUrl);
Run Code Online (Sandbox Code Playgroud)

但有没有办法将其转换回网址?

var newUrl = HttpUtility.Something("/page", nv);
Run Code Online (Sandbox Code Playgroud)

asp.net url namevaluecollection url-encoding

69
推荐指数
7
解决办法
4万
查看次数

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

当我从浏览器的地址栏(几乎任何操作系统上的任何浏览器)复制UTF-8 URL时,然后尝试将其粘贴到另一个文本字段中(例如在Facebook或Twitter上发布),它只提供解码后的URL,这让它变得丑陋.例如,在地址栏中,URL显示如下:

https://www.chaino.com/وذكر

但是当试图将其复制并粘贴到任何其他地方时,它会给出以下丑陋的URL:

https://www.chaino.com/%D9%88%D8%B0%D9%83%D8%B1

如果我想获得原始URL以便在任何地方使用它,我曾经在这个原始URL解码器 - 在线工具中解码它

问题是:是否有一种简短的直接方式来复制这些类型的URL,并在没有这个可怕的过程的情况下粘贴它?(可能使用镀铬扩展或其他东西)

browser url copy-paste url-encoding

55
推荐指数
7
解决办法
2万
查看次数

如何在Groovy中编码URL?

在Groovy中有一种URLEncode吗?

我找不到任何字符串?String URL编码实用程序.

示例:dehydrogenase (NADP+)dehydrogenase%20(NADP%2b)

(+而不是%20也可以接受,因为一些实现这样做)

groovy urlencode url-encoding

52
推荐指数
1
解决办法
6万
查看次数

如何确定字符串是否已经过URL编码?

我怎么能检查字符串是否已被编码?

例如,如果我编码TEST==,我得到TEST%3D%3D.如果我再次编码最后一个字符串,我得到TEST%253D%253D,如果它已经编码,我必须知道它...

我已经保存了编码参数,我需要搜索它们.我不知道输入参数,它们是什么 - 编码与否,所以我必须知道在搜索之前是否必须对它们进行编码或解码.

java utf-8 url-encoding

47
推荐指数
3
解决办法
5万
查看次数

使用Python进行URL编码/解码

我正在尝试编码和存储,并解码Python中的参数并在此过程中丢失.这是我的步骤:

1)我使用谷歌工具包gtm_stringByEscapingForURLArgument来正确转换NSString以传入HTTP参数.

2)在我的服务器(python)上,我将这些字符串参数存储为类似的东西u'1234567890-/:;()$&@".,?!\'[]{}#%^*+=_\\|~<>\u20ac\xa3\xa5\u2022.,?!\''(请注意,这些是"123"视图中的iphone键盘上的标准键和"#+ ="视图,其中的字符\u\x字符是一些货币前缀,如英镑,日元等)

3)我调用urllib.quote(myString,'')该存储的值,大概是为了将它们转移到客户端,以便客户端可以取消它们的转义.

结果是当我尝试记录%escaping的结果时出现异常.是否有一些关键的步骤我忽略了需要应用于\ u和\ x格式的存储值才能正确转换它以通过http发送?

更新:标记为以下答案的建议对我有用.不过,我提供了一些更新来解决以下评论.

我收到的例外引用了一个问题\u20ac.我不知道具体是否是一个问题,而不是它是字符串中的第一个unicode字符.

这个\u20ac字符是'欧元'符号的unicode.我基本上发现我有问题,除非我使用urllib2 quote方法.

python url-encoding

47
推荐指数
1
解决办法
8万
查看次数

使用url编码的斜杠获取URL

我想发送一个HTTP GET http://example.com/%2F.我的第一个猜测是这样的:

using (WebClient webClient = new WebClient())
{
  webClient.DownloadData("http://example.com/%2F");
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我可以看到实际上在线上发送的是:

GET // HTTP/1.1
Host: example.com
Connection: Keep-Alive
Run Code Online (Sandbox Code Playgroud)

因此http://example.com/%2F在传输之前会被翻译成http://example.com //.

有没有办法实际发送此GET请求?

当使用OCSP over HTTP/GET时,OCSP协议要求发送base-64编码的url编码,因此必须发送实际的%2F而不是'/'才能兼容.

编辑:

以下是OCSP协议标准(RFC 2560附录A.1.1)的相关部分:

使用GET方法的OCSP请求构造如下:

GET {url}/{对OCSPRequest的DER编码的base-64编码的url编码}

我对其他读物非常开放,但我看不出还有什么意思.

.net c# base64 http url-encoding

35
推荐指数
3
解决办法
3万
查看次数

如何编码URL以避免Java中的特殊字符?

我需要java代码来编码URL,以避免使用空格和%和&...等特殊字符

java url-encoding

34
推荐指数
4
解决办法
11万
查看次数

你如何在Java中浏览URL?

当我通过URL的InputStream读取xml,然后删除除url之外的所有内容时,我得到" http://cliveg.bu.edu/people/sganguly/player/%20Rang%20De%20Basanti%20-%20Tu% 20Bin%20Bataye.mp3 ".

如你所见,有很多"%20".

我希望网址不被转义.

有没有办法在Java中这样做,而不使用第三方库?

java url-encoding

33
推荐指数
2
解决办法
4万
查看次数

iOS:如何进行正确的URL编码?

我无法打开URL,UIWebView因此我已经进行了搜索并发现我需要对URL进行编码,因此我尝试对其进行编码,但是我在URL编码方面遇到了问题:我的网址是http://somedomain.com/data/Témp%20Page%20-%20Open.html(它不是真正的网址).

我很担心%20,我试着用替换stringByReplacingOccuranceOfString:@"" withString:@"",它给我我想要像URL http://somedomain.com/data/Témp Page - Open.html但它不是开放的UIWebView,但令人惊讶它在打开SafariFireFox完善.即使我打开未编码的URL,它也会自动转换并打开我正在寻找的页面.

我已经谷歌进行URL编码了,它指出了我已经检查过的不同结果,但没有结果帮助我!我在不同的URL编码问题中尝试了不同的函数答案,但它只是更改了所有特殊字符并使我的URL像在一起,甚至在任何浏览器中http%3A%2F%2Fsomedomain.com%2Fdata%2FT...都无法打开UIWebView.

它提供了以下Error LogUIWebView delegate

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { }
Run Code Online (Sandbox Code Playgroud)

错误代码:101&描述:错误域= WebKitErrorDomain代码= 101"操作无法完成.(WebKitErrorDomain错误101.)"UserInfo = 0x6e4cf60 {}

url-encoding ios

28
推荐指数
4
解决办法
4万
查看次数