标签: urlencode

如何使用javascript解码URL中的空格参数?

我尝试从URL中提取参数,但是一个参数的空格被替换为"+",所以我提取的参数是"iphone + 4",但实际上它是"iphone 4",我该如何转换为第二种形式,decodeURIComponent在这里不起作用.

javascript urlencode

3
推荐指数
2
解决办法
7734
查看次数

urgcode在preg_replace中

$str = preg_replace("'\(look: (.{1,80})\)'Ui",
             "(look: <a href=\"dict.php?process=word&q=\\1\">\\1</a>)",$str);
Run Code Online (Sandbox Code Playgroud)

我想编码网址,但我怎么能这样做?

我可以在preg_replace中使用urlencode()函数吗?

$str = preg_replace("'\(look: (.{1,80})\)'Ui",
            "(look: <a href=\"dict.php?process=word&q=\\1\">\\1</a>)",$str);
Run Code Online (Sandbox Code Playgroud)

你对preg_replace中的url编码有什么看法吗?

php urlencode preg-replace

3
推荐指数
1
解决办法
2451
查看次数

在为 GET 请求编码参数时如何处理空字符串?

我正在开发一个使用 HTTP GET 请求与服务器通信的 J2ME 应用程序。我已经有了一种生成 URL 编码参数的方法。

在目前的形式中,它不能满足空字符串,我见过的其他代码片段也有这个缺陷,因为它们都依赖于比较字符串参数的单个字符。我之前问过一个与这个空字符困境相关的问题

编辑:

对服务器(Play 1.0)的请求采用以下形式

http://server.com/setName/firstname/othername/lastname

参数不能为空,所以 http:server.com/setname/firstname//lastname 无效

参数是从 json 对象中检索的。目前,我拥有的 url 编码方法将对所有提取的参数进行正确编码,并保留任何无法按原样转换的字符。字符串中的空格如“Jo e”和空格字符本身将分别编码为 Jo%20e 和 %20。JSON 对象

{ "firstname":"joe"
  "othername":""
  "lastname":"bloggs"
}  
Run Code Online (Sandbox Code Playgroud)

然而,将导致无效的 url http://server.com/setname/joe//bloggs因为 othername 参数是一个空字符串并且由我的方法保留。

我可以检查即将返回的字符串是否为空并返回一个空格字符。但我想知道是否对这种方法没有更好的修改,或者是否有一种更强大的全新方法?

 public static String urlEncode(String s) {
    ByteArrayOutputStream bOut = null;
    DataOutputStream dOut = null;
    ByteArrayInputStream bIn = null;
    StringBuffer ret = new StringBuffer();
    try {
        bOut=new ByteArrayOutputStream();
        dOut = new DataOutputStream(bOut);
        //return value
        dOut.writeUTF(s);
        bIn = new ByteArrayInputStream(bOut.toByteArray());
        bIn.read(); …
Run Code Online (Sandbox Code Playgroud)

string urlencode char java-me

3
推荐指数
1
解决办法
6555
查看次数

URL 编码 ASCII/UTF16 字符

我正在尝试对一些字符串进行 URL 编码,但是我遇到了 .Net 框架提供的方法的问题。

例如,我正在尝试包含 'â' 字符的编码字符串。例如,根据w3schools 的说法,我希望这个字符被编码为 '%E2' (我必须调用的 PHP 系统也期望这个......)。

我尝试使用这些方法:

System.Web.HttpUtility.UrlEncode("â");
System.Web.HttpUtility.UrlPathEncode("â");
Uri.EscapeUriString("â");
Uri.EscapeDataString("â");
Run Code Online (Sandbox Code Playgroud)

但是,他们都将此字符编码为:%C3%A2

我想这与 .Net 中的字符串是 UTF-16 编码的事实有关。所以为了避免这个问题,我可以这样写:

"%" + ((int)character).ToString("X")
Run Code Online (Sandbox Code Playgroud)

但是,我想知道该框架是否已经有一个内置方法(我在这里或其他地方找不到任何关于为什么我的字符以这种方式编码的答案)?

c# ascii urlencode utf-16

3
推荐指数
1
解决办法
3133
查看次数

R 中 URLencode 的问题

为了能够从 RI 访问 NIST Chemistry Webbook 数据库,需要能够将一些查询传递到 URL 编码的网址。大多数情况下,这种转换与 URLencode() 一起工作得很好,但在某些情况下则不然。例如失败的一种情况是

query="Poligodial + 3-methoxy-4,5-methylenedioxyamphetamine (R,S) adduct, # 1"
Run Code Online (Sandbox Code Playgroud)

我试图使用

library(XML)
library(RCurl)
url=URLencode(paste0('http://webbook.nist.gov/cgi/cbook.cgi?Name=',query,'&Units=SI'))
doc=htmlParse(getURL(url),encoding="UTF-8")
Run Code Online (Sandbox Code Playgroud)

但是,如果您在网络浏览器中尝试此网址http://webbook.nist.gov/cgi/cbook.cgi?Name=Poligodial%20+%203-甲氧基-4,5-亚甲基二氧苯丙胺%20(R, S)% 20adduct,%20%23%201&Units=SI 它给出了未找到的名称。显然,如果您尝试从http://webbook.nist.gov/chemistry/name-ser.html进行查询, 则需要 URL 编码的字符串

"http://webbook.nist.gov/cgi/cbook.cgi?Name=Poligodial+%2B+3-methoxy-4%2C5-methylenedioxyamphetamine+%28R%2CS%29+adduct%2C+%23+1&Units=SI"
Run Code Online (Sandbox Code Playgroud)

有没有人知道gsub在这种情况下我应该使用什么样的规则来获得相同类型的 URL 编码?或者有其他简单的解决方法吗?

我试过

url=gsub(" ","+",gsub(",","%2C",gsub("+","%2B",URLencode(paste('http://webbook.nist.gov/cgi/cbook.cgi?Name=',query,'&Units=SI', sep="")),fixed=T),fixed=T),fixed=T)
Run Code Online (Sandbox Code Playgroud)

但这仍然不太正确,我不知道网站所有者可以使用什么规则......

r urlencode gsub

3
推荐指数
1
解决办法
2029
查看次数

URL 用 + 号替换空格

我最近创建了一个关于如何在 URL 中使用像/和这样的符号的+问题,但这让我想到了另一个问题,我如何替换 URL 中的空格,为什么?

如果我的网址是something.com/Find/this is my search,那为什么是错误的?为什么我们需要将其更改为something.com/Find/this+is+my+search

我已经搜索和尝试解决方案超过 5 个小时了。我看的每个地方的答案都是一样的,使用httputility.urlencodeor Uri.escapeDataString。但我试过这样做:

string encode = Uri.EscapeDataString(TextBoxSearch.Text);
Response.Redirect("/Find/" + encode );

string encode = HttpUtility.UrlEncode(TextBoxSearch.Text);
Response.Redirect("/Find/" + encode );

string encode = encode.replace(" ", "+")
Response.Redirect("/Find/" + encode);
Run Code Online (Sandbox Code Playgroud)

这些都不起作用,它们不会用任何东西替换空格(string.replace 会这样做,但这也会导致字符串更改,这意味着它无法在下一页的数据库中找到值)。

如果我对整个 URL 进行编码,那么我/将全部转为 %,这显然不是我想要的。

我需要的

If I redirect like this Response.Redirect("/Find/" + search);.
And I make a search like this "Social media".
I then get the queryString on …
Run Code Online (Sandbox Code Playgroud)

c# asp.net url urlencode

3
推荐指数
1
解决办法
7927
查看次数

Spring @RequestMapping处理特殊字符

我有一个这样的REST API:

  @RequestMapping(value = "/services/produce/{_id}", method = RequestMethod.PATCH, 
  consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
  public String patchObject(@RequestBody PatchObjectRequest obj, 
      @PathVariable("_id") String id) {
  // some code
  }
Run Code Online (Sandbox Code Playgroud)

我的问题是可能给出的id是以下形式:

US%2FCA%2FSF%2FPlastic
Run Code Online (Sandbox Code Playgroud)

这是"US/CA/SF/Plastic"的URL编码.

我的问题是,当一个%字符放入URL时,@ RequestMapping不会将它映射到此方法,它将返回404.有没有办法接受在其中包含%字符的ID作为URL的一部分?

java rest url spring urlencode

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

如何编码".."用于URL路径?

我正在尝试构建一个类似于以下内容的URL:

var myUrl = '/path/to/api/' + encodeURIComponent(str);
Run Code Online (Sandbox Code Playgroud)

但是,如果str是,..那么您的浏览器会自动关闭路径段,以便URL变为/path/to不是我想要的.

我已尝试编码..,%2E%2E但您的浏览器仍会在发送请求之前重新解释它.我有什么办法可以让路径真正进入我的服务器/path/to/api/..吗?

javascript urlencode

3
推荐指数
1
解决办法
547
查看次数

如何从 Django 中的编码 URL 获取请求参数?

我正在使用 Django Rest 框架。

API 接收带有编码到 URL 中的 json 对象的 GET 请求。例如:

/endpoint?%7B%0D%0A++%22foo%22%3A%5B%22bar%22%2C%22baz%22%5D%0D%0A%7D

解码参数在哪里

{
  "foo":["bar","baz"]
}
Run Code Online (Sandbox Code Playgroud)

我在 Django 或 DRF 的文档中找不到任何指向框架如何处理此问题的内容,以便我QueryDict通过执行以下操作来获取其中的 json 对象:

request.query_params # Should yield a dict -> {foo=[bar,baz]}

如何在 Django Rest Framework 中解码 JSON 编码的 URL?

请注意,我的实际参数要复杂得多。使用 POST 不是因为调用者严重依赖缓存和书签

python django json urlencode django-rest-framework

3
推荐指数
1
解决办法
6337
查看次数

为什么双引号 urlencode 为 %22?

据我所知,URL编码的存在是因为URL只支持ASCII编码。但既然"已经在 ASCII 表中了,为什么还要像%22URL 编码那样进行编码呢?

html encode urlencode

3
推荐指数
1
解决办法
6297
查看次数