标签: urlencode

以可移植的方式在 shell 脚本中对字符串进行 URL 编码

我需要使用将在 BusyBox Ash、Dash、Bash 和 ZSH 中运行的 shell 函数对字符串进行 URL 编码。

\n\n

它将在不同的 Docker 容器中运行,因此安装尽可能少的依赖项会更好。

\n\n

笔记:

\n\n
    \n
  • 问题“在 bash 脚本中对字符串进行 URL 编码”要求提供特定于 Bash 的脚本,唯一提供的答案取决于容器上安装的 PHP。

  • \n
  • 问题“如何为curl命令对数据进行urlencode? ”特定于curl,但肯定对非特定答案开放。然而,这 25 个答案似乎都不适用。那里的答案之一只能将数据发送到curl,而有些特定于bashksh,其他一些则需要Perl PHP Python Lua NodeJS Ruby gridsite -clientsuni2asciijqawksed安装。其中之一不需要额外的依赖项,但不保留a1和 等字符~

  • \n
\n\n

我期望得到什么:

\n\n
$> urlencode \'/\'\n%2f\n\n$> urlencode \'\xc3\xa7\'\n%c3%a7\n\n$> …
Run Code Online (Sandbox Code Playgroud)

linux shell posix urlencode

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

使用 Curl PHP 进行 URL 编码

我进行了建议的更改,但仍然收到类似的错误:

{“error”:“invalid_request”,“error_description”:“无效的授权类型”}

如果 url 编码设置不正确,则可能会发生此错误。更新后的代码如下 任何帮助将不胜感激!

<?php

$client_id = '...';
$redirect_uri = 'http://website.com/foursquare2.php';
$client_secret = '...';
$code = $_REQUEST['code'];

$ch = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($ch, CURLOPT_URL, "https://id.shoeboxed.com/oauth/token");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
'grant_type' => 'authorization_code',
'code' => $code,
'client_id' => $client_id,
'client_secret' => $client_secret,
'redirect_uri' => $redirect_uri
));

$response = curl_exec($ch);

$err = curl_error($ch);
curl_close($ch);
if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
?>
Run Code Online (Sandbox Code Playgroud)

php curl urlencode url-encoding

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

创建不编码的查询字符串

我想创建一个查询字符串,但不编码特殊字符,例如@,!?

这是我的代码:

payload = {"key": "value", "key2": "value2",
           "email": "test@hello3.ch", "password": "myPassword54321!?"}
print(urllib.parse.urlencode(payload))  
Run Code Online (Sandbox Code Playgroud)

现在我得到的输出是:

密码=myPassword54321%21%3F&email=test%40hello3.ch

我怎样才能使我的输出看起来像这样:

密码=myPassword54321!?&email=test@hello3.ch

urllib urlencode python-3.x

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

如何对空格和单词“and”进行 URL 编码?

我需要对以下字符进行 URL 编码。

钥匙 编码
Space %20
(字面意思) %26

为此,我提出了以下代码。 (我需要使用,var因为我的目标是较旧的浏览器。)

var word = "Windows and Mac"; // This can be anything

word = word.split(" ").join("%20");
word = word.split("and").join("%26");
Run Code Online (Sandbox Code Playgroud)

但是,此代码存在一些问题。

  • 这不是最好的解决方案,很可能有更好的解决方案。
  • and区分大小写(这意味着我不能输入“ AND 、“ aNd ”等)。

还有其他方法可以满足这些要求吗?它还需要在较旧的浏览器(如 IE)上运行。

javascript urlencode

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

HTML编码的链接和锚点

我有一个用例,我将页面焦点设置为特定元素(在它之前有一个锚点).当用户未登录时,会有重定向到登录页面,登录后,用户将被重定向到相关页面,并对URL进行编码.

我看到表单链接#target的URL按预期工作(关注元素),而url编码的链接链接%23target则没有.这是预期的行为吗?

编辑:如果这是预期的行为,是否有工作专注于目标?就像在,围绕url编码的方式?

编辑添加更多信息:
假设有代码

page1.html
... html before the anchor ...
<a name="test">Some code</a>
... html after the anchor ...
Run Code Online (Sandbox Code Playgroud)

我正在以page1.html%23test访问该页面.这与page1.html #test的工作方式不同.是否有一个jQuery方法来实现它?即使在url编码后,location.hash还会包含测试吗?我无法控制更改网址编码.

编辑:

因为我知道在页面被重定向后我想去哪个命名锚,我做了一个

window.location.hash = namedAnchor  
Run Code Online (Sandbox Code Playgroud)

解决问题.只有在客户成功登录时才会输出此JS行.解决了我的问题,虽然不是我想要的通用答案.我正在寻找一种避免在url编码中转义#的方法.

html-encode urlencode

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

URL的编码字符串

我必须从Iphone应用程序将数据发布到php页面,所以我需要正确编码参数,转换特殊字符...

特别是我需要发送iPhone的UDID.

我在网上找到了许多帮助编码String作为参数传递,但我得到一个奇怪的错误.

我正在使用这个功能:

- (NSString *)URLEncodeString:(NSString *)string { 

NSString *result =
   (NSString*)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, 
    (CFStringRef)string, NULL, CFSTR("'\"?=&+<>;:-"), kCFStringEncodingUTF8);

return [result autorelease];}
Run Code Online (Sandbox Code Playgroud)

它似乎是正确的,但当我使用它时,结果不是我所期望的.

这是代码:

UIDevice *device = [UIDevice currentDevice];
NSString *uniqueIdentifier = [device uniqueIdentifier];

NSLog(uniqueIdentifier);
NSLog([self URLEncodeString:uniqueIdentifier]);
Run Code Online (Sandbox Code Playgroud)

这是我点击此代码时生成的日志:

2010-06-23 21:58:51.671 provaNavigation[2343:20b] 00000000-0000-1000-8000-0013775CE6D2
2010-06-23 21:58:51.672 provaNavigation[2343:20b] 0000000010003900009080176010001273086780001283520013775CE6D2
Run Code Online (Sandbox Code Playgroud)

然后再次:

2010-06-23 21:59:25.614 provaNavigation[2343:20b] 00000000-0000-1000-8000-0013775CE6D2
2010-06-23 21:59:25.615 provaNavigation[2343:20b] 000000001000390000908192801000-18000912258750013775CE6D2
Run Code Online (Sandbox Code Playgroud)

然后再次:

2010-06-23 21:59:40.848 provaNavigation[2343:20b] 00000000-0000-1000-8000-0013775CE6D2
2010-06-23 21:59:40.849 provaNavigation[2343:20b] 000000001000390000908866081000-18000912239630013775CE6D2
Run Code Online (Sandbox Code Playgroud)

然后再次...

我每次都会获得不同的值,并且永远不会使用正确的%编号进行更正.

iphone post objective-c urlencode nsstring

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

CDATA应该是URL编码的吗?

显然答案是否定的......对吗?我问的原因是因为我在XML中为Android应用程序定义了这个字符串:

<string name="foo"><![CDATA[<html><body><p>This%20is%20a%20test</p></body></html>]]></string>
Run Code Online (Sandbox Code Playgroud)

我对字符串的所有操作都是读取它,并在HTML视图中显示.我不会期望%20s被解释,但它们是.这是正确的行为,还是Android通常是错误的?

html xml android urlencode cdata

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

NSString与emoticons/emojis url编码

我试图获取可能包含特殊字符和表情符号的UITextField的内容,并将其转换为我可以在GET请求中传递给PHP服务的内容.

如果我根本不对字符串进行编码,那么emojis就会很好地显示(我可以在数据库中看到它们并且它们会正确地回复给我)...但是如果我添加了特殊的字符(〜!@#$%等等) .)GET请求扼流圈.

所以我通过url编码器运行字符串:

[commentText stringByAddingPercentEscapesUsingEncoding:NSNonLossyASCIIStringEncoding];
Run Code Online (Sandbox Code Playgroud)

我正在使用NSNonLossyASCIIStringEncoding来正确地运行emojis,这有效,但使用它来编码会返回一个nil字符串.事实上,唯一没有返回nil的编码是UTF8,但是这会使用百分比转义来扩展表情符号unicode.

我该怎么做呢?我是否必须为此案例编写自己的字符串替换,或者是否有iOS方法可以实现,我没有看到?

干杯,

克里斯

encoding objective-c urlencode nsstring ios

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

希腊字母作为URL中的参数

我一直在努力将希腊字母作为URL中的参数传递(例如http://localhost/test.html?text =Καλημέρα)

出于这个原因,我创建了一个简单的html:

<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">

<body>

<p id="text"></p>

<script type="text/javascript">
    function getQueryVariable(variable)
    {
      var query = window.location.search.substring(1);
      var vars = query.split("&");
      for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if(pair[0] == variable){return pair[1];}
      }
      return(false);
    }
    var i = getQueryVariable("text");

    document.getElementById("text").innerHTML = i;

</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

然而,当我从浏览器打开网站时,javascript似乎无法正确处理输入参数并将其打印为希腊文本

这是我在浏览器窗口中获得的内容:

%CE%9A%CE%B1%CE%BB%CE%B7%CE%BC%CE%AD%CF%81%CE%B1

而不是Καλημέρα.

我认为这是一个编码的问题,这就是为什么我在html的顶部塑造了一个UTF-8语句.你能告诉我如何正确传递"希腊语"作为网址输入吗?

html javascript url encoding urlencode

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

在url参数DJANGO中处理'&'

我在django中创建了一个api,其中我有一个参数(state_name),并且state_name的值可以在其值中包含'&',这会导致某些问题?

例如,如果我的网址是这样的

http://localhost:8080/api?state_name=jammu&kashmir&value=2
Run Code Online (Sandbox Code Playgroud)

所以在上面的例子中,当我尝试从url中获取值时,它只使用state_name的值'jammu'并将kashmir视为参数?

如何在django中解决此问题?

python django rest urlencode django-rest-framework

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