我想对电子邮件地址进行 URL 编码。我在w3schools上输入“bmackey@foo.com” ,但它没有编码“@”或“.”。我正在使用encodeURI()并且有相同的结果。到底是怎么回事?
至少,我认为它没有编码,因为我在 FireBug Net 选项卡中看到:
GET http://dev:8989/SJMUserManager/Service/Index/bmackey@foo.com
我期待看到
GET http://dev:8989/SJMUserManager/Service/Index/bmackey%40foo%2Ecom
在 PHP 中,使用 urlencode() 进行 url 编码时,输出的字符是大写的:
echo urlencode('MyString'.chr(31));
//returns 'MyString%1F'
Run Code Online (Sandbox Code Playgroud)
对于上述示例,我需要让 PHP 返回“MyString%1f”,但不要将字符串的任何其他部分小写。以便与其他平台保持一致。有什么方法可以做到这一点,而不必一次遍历字符串一个字符,计算是否每次都需要更改大小写?
我在网址下面。
http://localhost:8080/servlet?user=John&message=hai&hello&recipient=scott
Run Code Online (Sandbox Code Playgroud)
在上面的 url 中,我有 3 个请求参数,如下所示。
user=John
message=hai&hello
recipient=scott
Run Code Online (Sandbox Code Playgroud)
这里的问题在于message请求参数的值。因为这里它的值包含符号 (&)。当我尝试时,我request.getParameter("message")只会得到hai但不会hai&hello。我该如何解决这个问题?
谢谢!
在我们的RESTful API中,我们使用RQL来解析URL-s并从中构建查询.这是一个查询示例:
http://www.example.com/resource?resource.name~=%Some name%
转换为LIKE运营商.
然后,在我们的前端,我们实现了一个搜索字段,其中的更改触发ajax请求:
'http://www.example.com/resource?resource.name~=%' + query + '%'
当然,有一个错误 - 每个与"%"的特殊组合将服务器端转换为字符,导致查询返回没有结果.
怎么解决?
之后我尝试encodeURIComponent了所有的东西,?但它变得更糟,例如resource.name~%3D%25befr%25哪个"befr"作为查询字符串.
我没有其他想法如何解决这个问题.
我想知道是否有任何“开箱即用”的 php 函数可以对字符串中的所有字符进行编码,而不仅仅是空格。
$str="Encode All Characters Not Only The Spaces In Between";
echo rawurlencode($str);
Run Code Online (Sandbox Code Playgroud)
这返回:
Encode%20All%20Characters%20Not%20Only%20The%20Spaces%20In%20Between
Run Code Online (Sandbox Code Playgroud)
但我想对所有字符串进行编码,而不仅仅是空格。
对于URL编码/解码,建议使用TNetEncodingDelphi XE7以上版本。
所以在 Delphi XE8 中我使用这个代码作为例子:
uses
System.NetEncoding;
...
edtEncodedURL.Text := TNetEncoding.URL.Encode('SetFont(''Arial'',15)');
Run Code Online (Sandbox Code Playgroud)
给出以下结果:
SetFont('宋体'%2C15)
但是,这不会对单引号字符进行编码,正如您从上面的示例中看到的那样。
此外,在W3Schools.com HTML URL Encoding Reference 的“Try It Yourself”部分中,字符串SetFont('Arial',15)被 URL 编码为:
设置字体%28%27Arial%27%2C15%29
那么有没有办法对 Delphi XE8 中的单引号字符进行 URL 编码呢?
\xe2\x80\x93 或 \xe2\x80\x9c 或 \xe2\x82\xac 在 ISO-8859-1 中如何编码?
\n\n我已参考此文档http://www.ic.unicamp.br/~stolfi/EXPORT/www/ISO-8859-1-Encoding.html但没有找到 \xe2\x80\x93 或 \xe2\ 的任何编码x80\x9c 或 \xe2\x82\xac。
\n我对 clojure 很陌生。我对 java 及其库函数没有任何经验。我在 clojure 中编写了一个函数,它使用 java.util.Base64/getUrlEncoder 返回 base64 加密数据。我的代码看起来像:
user> (import java.util.Base64)
java.util.Base64
user> (let [encoder (Base64/getUrlEncoder)]
(String. (.encode encoder (.getBytes "Hello StackOverflow"))))
"SGVsbG8gU3RhY2tPdmVyZmxvdw=="
Run Code Online (Sandbox Code Playgroud)
输出也包含填充(最后两个等号)。我想从我的输出中删除填充。 https://docs.oracle.com/javase/8/docs/api/java/util/Base64.Encoder.html#withoutPadding--我知道这对解决我的问题很有用,但我不知道如何在 clojure 中使用withoutPadding()函数。我试过这样的事情:
user> (let [encoder (Base64/getUrlEncoder))]
(doto (java.util.Base64/Encoder (.withoutPadding (String. (.encode encoder (.getBytes "Hello StackOverflow"))))))
Run Code Online (Sandbox Code Playgroud)
但这是错误的。谁能告诉确切的解决方案?谢谢。
我需要以user:pass查询参数 (es. http://example.com?BASIC_AUTH=dXNlcjpwYXNz)的形式向 nginx发送一些基本的身份验证凭据 (es. ),并能够以更常见的Authorization: Basic dXNlcjpwYXNz标头形式将它们转发到代理后面的目标服务器。
我已经能够使用正则表达式检索编码的 auth 字符串的值。问题是该值通常可能包含一些需要在 URL 中进行百分比编码的字符。埃斯。user:pass!->?BASIC_AUTH=dXNlcjpwYXNzIQ==变成?BASIC_AUTH=dXNlcjpwYXNzIQ%3D%3D
因此,当我将请求转发到目标服务器时,我最终Authorization: Basic dXNlcjpwYXNzIQ%3D%3D会指定目标服务器将拒绝哪个,并给出 401 Unauthorized。
如何在设置 Authorization 标头之前强制 nginx 解码 auth 字符串?在此先感谢您的帮助。
注意:由于某些特定于应用程序的限制,我无法首先在 Authorization 标头中发送 auth 字符串。
鉴于这段代码:
<%
Response.Write Server.URLEncode("a doc file.asp")
%>
Run Code Online (Sandbox Code Playgroud)
它输出一段时间(如 Javascript call encodeURI):
a%20doc%20file.asp
Run Code Online (Sandbox Code Playgroud)
现在,不知为何,我得到:
a+doc+file%2Easp
Run Code Online (Sandbox Code Playgroud)
我不确定我是怎么做到的(可能是文件内容编码为 ANSI/UTF-8)。为什么会发生这种情况,我怎样才能获得 的第一个行为Server.URLEncode,即使用百分比编码?
urlencode ×10
php ×3
java ×2
javascript ×2
url-encoding ×2
ajax ×1
asp-classic ×1
base64 ×1
clojure ×1
delphi ×1
delphi-xe8 ×1
encode ×1
encoding ×1
lowercase ×1
nginx ×1
restful-url ×1
string ×1
url ×1
utf-8 ×1
vbscript ×1