Php urlencode()不编码完整字符,如<;

Php urlencode()不编码完整字符,如<;,php,url,Php,Url,我们知道不是url安全字符,但urlencode()不会将它们编码为url安全字符 那么,如何将这些url不安全字符转换为url安全字符呢 更新 urlencode()对进行编码,但当我单击链接时,它仍然显示浏览器url中出现的相同url不安全字符 例如,在源代码中,如果我有 <a href='%3C'> < is encoded as %3C </a>

我们知道
不是url安全字符,但
urlencode()
不会将它们编码为url安全字符

那么,如何将这些url不安全字符转换为url安全字符呢

更新
urlencode()
进行编码,但当我单击链接时,它仍然显示浏览器url中出现的相同url不安全字符

例如,在源代码中,如果我有

<a href='%3C'> < is encoded as %3C </a>
<编码为%3C

但当浏览器解析此链接并将鼠标悬停在该链接上时,您将看到链接为
。浏览器正在解码字符,以便显示,以便更容易读取URL中的数据。它仍然会将编码版本发送到HTTP请求

浏览器正在解码用于显示的字符以便于读取URL中的数据。它仍然会将编码版本发送到HTTP请求

它应该而且确实适用于
%3C
%3E
您使用的是什么版本的php?另外,你能提供你用来获得结果的代码吗?我的代码全搞乱了,我不知道我做错了什么,但是
urlencode()
工作正常,我的代码有点问题,我必须自己找到问题,谢谢@Thamilan@Thamilan我更新了问题,你能帮帮我吗?它应该而且确实适用于
%3C
%3E
你使用的是什么版本的php?另外,你能提供你用来获得结果的代码吗?我的代码都乱七八糟,我不知道我做错了什么,但是
urlencode()
工作正常,我的代码有点问题,我必须自己找到问题,谢谢@Thamilan@Thamilan我更新了问题,你能帮我吗?谢谢,但是为什么它显示空间为+或%20,为什么它不将+解码为space@beginner-因为它不是一个很好的功能(它试图避免解码可能不明确的字符,这只是以不同的方式混淆)。我仍然感到困惑,但这是我的问题,.Quentin是正确的——如果您检查实际请求,您将看到浏览器以您期望的方式发送请求,它只是以不同的方式呈现请求。虽然这个功能的有用性还存在争议,但它确实存在,而且这不是浏览器操作的唯一东西——最好是查看实际请求,看看到底发生了什么。谢谢,但是为什么它将空间显示为+或%20,为什么它不将+解码为space@beginner-因为这不是一个很好的功能(它试图避免解码可能模棱两可的字符,这只是以另一种方式混淆).我仍然感到困惑,但这是我的问题,.Quentin是正确的--如果你检查实际的请求,你会看到浏览器以你期望的方式发送它,它只是以不同的方式呈现它。虽然这个功能的有用性是有争议的,但它确实存在,而且这不是浏览器操作的唯一东西--它总是最好的真正的要求是看看到底发生了什么。