Php 如何发送URL中有特殊字符的字符串(比如:公钥)?

Php 如何发送URL中有特殊字符的字符串(比如:公钥)?,php,html,query-string,url-parameters,Php,Html,Query String,Url Parameters,当我说简单字符串时,它工作正常,但当我以相同的方式发送公钥字符串时,它显示错误 我尝试了urlencode()方法 <iframe src="http://local.abc.com/formulaList?id=<?php echo $public_key; ?>" > 我写了一些可能有用的东西 $url = htmlspecialchars("wdsd@ccddsd*"); header("Location: https://www.google.com?key

当我说简单字符串时,它工作正常,但当我以相同的方式发送公钥字符串时,它显示错误

我尝试了
urlencode()
方法

<iframe src="http://local.abc.com/formulaList?id=<?php echo $public_key; ?>"  >

我写了一些可能有用的东西

$url =  htmlspecialchars("wdsd@ccddsd*");
header("Location: https://www.google.com?key={$url}");
这对你有用

base64()
不起作用,因为它的输出可以包含斜杠(而且,大多数公钥字符串已经是base64编码的)

htmlspecialchars()
按照其名称转义与URL无关的HTML特殊字符(例如,
将转换为
é;

urlencode()
是正确使用的函数,但请记住URL不应如中所述太长


使用
urlencode()
时遇到了什么问题?

htmlspecialchars用于转义HTML。。。特殊字符,如“a”、“é”、“è”、“~”和“ô”等,但它在Header()加载它时工作。您可以复制并检查您这边的结果。