相关疑难解决方法(0)

角网址加号转换为空间

我有角度应用程序,我想在查询字符串中传递加号+,如:

http://localhost:3000/page?name=xyz+manwal
Run Code Online (Sandbox Code Playgroud)

当我点击此URL时,它将转换为:

http://localhost:3000/page?name=xyz%20manwal
Run Code Online (Sandbox Code Playgroud)

%20指的空间.我该如何阻止这种转换?

javascript url angular

30
推荐指数
6
解决办法
2万
查看次数

如何在System.Net.WebUtility.UrlEncode中强制%20而不是+

我需要在类库程序集中编码URL,我不想引用System.Web.URL包含多个空格

https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.quote where  symbol in ("YHOO","AAPL")&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=
Run Code Online (Sandbox Code Playgroud)

当我使用System.Net.WebUtility.UrlEncode()时,空格将替换为"+",这不起作用.我需要用%20替换它们

如何在不引用System.Web的情况下实现此目的?

.net c#

19
推荐指数
2
解决办法
6131
查看次数

来自HTTP的Unescape Python字符串

我有一个来自HTTP标头的字符串,但它已被转义..我可以使用什么功能来解决它​​?

myemail%40gmail.com -> myemail@gmail.com
Run Code Online (Sandbox Code Playgroud)

urllib.unquote()是否可行?

python mod-wsgi header http urllib2

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

URLSearchParams 不返回与在 URL 参数中找到的相同的字符串

至少在 Chrome 中是这样。如果我的窗口的 URL 是https://www.google.com/search?q=JavaScript+URLSearchParams并且我在 JavaScript 控制台中运行它:

url = new URL(document.URL);
urlsp = url.searchParams;
console.log(urlsp.get("q"));
Run Code Online (Sandbox Code Playgroud)

那么记录到控制台的不是JavaScript+URLSearchParams,而是JavaScript URLSearchParams。这很痛苦,因为我尝试编写的用户脚本需要访问q参数的实际值;并且+不被浏览器对待。当然,我可以编写一些将 URL 作为字符串处理的代码,但这会很乏味且容易出错。同样的处理发生%3A在参数中的值上,但它被返回:。如何让 URLSearchParams 返回 URL 参数的实际值?

javascript

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

Jax-rs自动解码路径参数

我有一个jax-rs服务,它接收路径中的一组参数pathparameters.这些参数可能是包含不适合url的值的字符串,因此它们在客户端使用java.net.UrlEncoder进行urlencoded,如下所示:

String param = URLEncoder.encode(o.toString(), "UTF-8");
Run Code Online (Sandbox Code Playgroud)

这用于构建URL supplier/group/param1/param2/param3.如果其中一个因urlencoding而被更改,例如,如果它只是一个空格,则在服务上接收的字符串是一个+符号.

@GET
@Path("{supplierId}/{groupCode}/{groupId}")
@Produces({MediaType.APPLICATION_XML, MediaType.TEXT_XML})
public SupplierGroup getSupplierGroup(@PathParam("supplierId") BigDecimal supplierId,
        @PathParam("groupCode") String groupCode,
        @PathParam("groupId") BigDecimal groupId) {
    //now groupCode is "+", not " "
}
Run Code Online (Sandbox Code Playgroud)

我希望jaxrs能够自动解码编码路径参数.

编辑:测试更多我发现,当发送使用%20空间时,它能够解码参数.

encoding jax-rs

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

另外登录ASP.NET站点的查询字符串

几年前,我创建了一个数据库驱动的ASP.NET站点,该站点使用单个APSX页面显示所有站点页面.因此,该网站的所有网址都采用以下格式:

/main.aspx?page=Page+Title+One

/main.aspx?page=Another+Article+Title

/main.aspx?page=Third+Page
Run Code Online (Sandbox Code Playgroud)

main.aspx页面获取查询字符串数据(例如,Page + Title + One),并将其用作从SQL Server数据库中提取相应文章内容的键.页面的实际标题存储在带空格而不是加号的数据库中(例如"Page Title One").

在URL查询字符串中使用+号作为单词分隔符的糟糕决定导致最近搜索引擎出现很多问题(重复内容等),因此我想修复它,但不更改URL.

我想要做的是当搜索引擎或访问者试图访问错误的URL时,错过+符号并改为使用空格,例如:

/main.aspx?page=Page Title One
Run Code Online (Sandbox Code Playgroud)

我想做301永久重定向到:

/main.aspx?page=Page+Title+One
Run Code Online (Sandbox Code Playgroud)

为了能够做到这一点,我需要检查查询字符串值是否有加号或空格,但是当我使用Request.QueryString ["page"]得到值时,即使实际的问题字符串已经加入,我仍然得到字符串白色空间"页面标题一".

该站点在IIS6/Win 2003上运行.

我怎样才能做到这一点?

c# special-characters request.querystring

11
推荐指数
2
解决办法
7317
查看次数

http url中的%20和+是否相同?

我知道%20和+都解码为相同的二进制值(空格),对于大多数Web服务器,尤其是那些映射到物理文件的Web服务器,它们将指向相同的资源.

但我的问题是,必须像网址http://www.example.org/hello%20world指向相同的资源http://www.example.org/hello+world,是他们规范地一样的吗?

在HTTP/1.0 +中没有映射到空格,所以我特别询问HTTP/1.1.

http urlencode

10
推荐指数
1
解决办法
1785
查看次数

"+"和"%A0"之间的区别 - urlencoding?

我是url编码一串文本传递给一个函数.但是,它将双空格中的第二个空格编码为"%A0".这意味着当我解码字符串时,"%A0"在黑框中显示为问号.

我真的只需要能够删除额外的空间,但我想了解是什么导致了这个以及如何正确处理它.

例如:

Something  Something else
Run Code Online (Sandbox Code Playgroud)

编码为:

Something+%A0Something+else
Run Code Online (Sandbox Code Playgroud)

html forms urlencode

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

如何在node.js中发布数据,内容类型='application/x-www-form-urlencoded'

我在使用node.js发布数据时遇到问题 Content-type: 'application/x-www-form-urlencoded'

var loginArgs = {
    data: 'username="xyzzzzz"&"password="abc12345#"',

    //data: {
    //    'username': "xyzzzzz",
    //    'password': "abc12345#",
    //},

    headers: {
            'User-Agent': 'MYAPI',
            'Accept': 'application/json',
            'Content-Type':'application/x-www-form-urlencoded'      
    }   
};
Run Code Online (Sandbox Code Playgroud)

并且发布请求是:

client.post("http:/url/rest/login", loginArgs, function(data, response){
console.log(loginArgs);

if (response.statusCode == 200) {
    console.log('succesfully logged in, session:', data.msg);
}
Run Code Online (Sandbox Code Playgroud)

它总是返回用户名/密码不正确.

在其余的api中,据说请求体应该是:

username='provide user name in url encoded
format'&password= "provide password in url encoded format'
Run Code Online (Sandbox Code Playgroud)

rest request node.js

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

Hotmail搞乱了编码的URL参数

我们有一个系统可以发送带有链接的常规电子邮件,其中许多包含URL编码参数,例如:

href="http://www.mydomain.com/login.aspx?returnurl=http%3A%2F%2Fwww.mydomain.com%2Fview.aspx%3Fid%3D1234%26alert%3Dtrue"
Run Code Online (Sandbox Code Playgroud)

您可以看到"returnurl"参数已编码.但是,似乎我们的大量用户(看似hotmail)正在接收带有此部分解码的电子邮件,部分解码如下:

href="http://www.mydomain.com/login.aspx?returnurl=http://www.mydomain.com/view.aspx?view.aspx%3Fid%3D1234%26alert%3Dtrue"
Run Code Online (Sandbox Code Playgroud)

为什么会像这样解码?为什么只能部分解码?因此我不知道如何处理它.我想到base-64编码但是base64字符串包含需要解码的字符......我想到了双重编码但是我不知道是否要对参数进行双重解码......任何人都可以帮忙吗?谢谢.

email hotmail url-encoding

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