如果我想使用变量创建URL,我有两个选择来编码字符串.urlencode()和rawurlencode().
究竟有什么区别,哪个是首选?
我知道+URL的查询字符串中的a表示空格.这也是查询字符串区域之外的情况吗?也就是说,请执行以下URL:
http://a.com/a+b/c
Run Code Online (Sandbox Code Playgroud)
实际上代表:
http://a.com/a b/c
Run Code Online (Sandbox Code Playgroud)
(因此,如果它实际上应该是a +,则需要进行编码),还是实际上实际上代表了a+b/c?
我期待着
System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8"));
Run Code Online (Sandbox Code Playgroud)
输出:
Hello%20World
(20是空格的ASCII十六进制代码)
但是,我得到的是:
Hello+World
我使用了错误的方法吗?我应该使用的正确方法是什么?
如何编码查询参数以在Java中的URL上进行编码?我知道,这似乎是一个明显的问题.
我不确定有两个细微之处:
笔记:
java.net.URLEncoder.encode似乎没有用,它似乎是为了提交表单的编码数据.例如,它+代替空间编码空间%20,并编码不必要的冒号.java.net.URI 不编码查询参数我想获取这些特定字母的百分比编码字符串,如何在objective-c中执行此操作?
Reserved characters after percent-encoding
! * ' ( ) ; : @ & = + $ , / ? # [ ]
%21 %2A %27 %28 %29 %3B %3A %40 %26 %3D %2B %24 %2C %2F %3F %23 %5B %5D
Run Code Online (Sandbox Code Playgroud)
请使用此字符串进行测试,看看它是否有效:
myURL = @"someurl/somecontent"
Run Code Online (Sandbox Code Playgroud)
我希望字符串看起来像:
myEncodedURL = @"someurl%2Fsomecontent"
Run Code Online (Sandbox Code Playgroud)
我试过stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding已经但它不起作用,结果仍然与原始字符串相同.请指教.
鉴于字符串:
"Hello there world"
Run Code Online (Sandbox Code Playgroud)
如何创建URL编码的字符串,如下所示:
"Hello%20there%20world"
Run Code Online (Sandbox Code Playgroud)
如果字符串也有其他符号,我也想知道该怎么做,比如:
"hello there: world, how are you"
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么?我打算解析,然后为此构建一些代码.
我怎么能检查字符串是否已被编码?
例如,如果我编码TEST==,我得到TEST%3D%3D.如果我再次编码最后一个字符串,我得到TEST%253D%253D,如果它已经编码,我必须知道它...
我已经保存了编码参数,我需要搜索它们.我不知道输入参数,它们是什么 - 编码与否,所以我必须知道在搜索之前是否必须对它们进行编码或解码.
我有角度应用程序,我想在查询字符串中传递加号+,如:
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指的空间.我该如何阻止这种转换?
因此,根据我对PHP和cookie的理解,如果我使用该setcookie()函数,那么我会得到一个自动进行url编码的cookie.当我去$_COOKIE数组时,我应该恢复cookie,自动解码url.问题是,当我查看时,似乎是两次解码cookie $_COOKIE.
假设我有一个cookie,其值为"Name | ID | Email",例如:
Joe|123|my+email@somewhere.com
这将被编码为:
乔%7C123%7Cmy%2Bemail%40somewhere.com
注意加号是编码的,所以理论上我应该把它解回来,如果我解码它.由于这是自动完成的$_COOKIE,我应该回到我的开始.但相反,我回来了:
Joe | 123 | my email@somewhere.com
注意曾经是加号的空间.如果我urldecode()在cookie上额外运行,这就是我所期望的.但我不是,所以我不知道为什么我会得到一个空间而不是一个加号.
另一个有趣的转折 页面上的刷新似乎产生了正确的输出.任何想法为什么它的行为像这样?
仅供参考,要设置初始cookie,我使用javascript和escape()脚本来生成编码字符串.这可能是javascript和PHP之间的问题吗?
我们将不胜感激.
url ×4
java ×3
url-encoding ×3
urlencode ×3
php ×2
angular ×1
cookies ×1
encoding ×1
iphone ×1
javascript ×1
objective-c ×1
query-string ×1
ruby ×1
setcookie ×1
utf-8 ×1