问题:2个函数都是针对字符串转义使其适合做文件名。该用哪个?哪个更标准?
结论:
rawurlencode遵守是94年国际标准备忘录RFC 1738,
urlencode实现的是传统做法,和上者的主要区别是对空格的转义是'+'而不是'%20'
javascript的encodeURL也是94年标准,
而javascript的escape是另一种用"%xxx"标记unicode编码的方法。
推荐在PHP中使用用rawurlencode。弃用urlencode
样例
source:
超级无敌的人sadha sajdh数据样本sdls fhejrthcxzb.file.jpeg
PHP urlencode:
%E8%B6%85%E7%BA%A7%E6%97%A0%E6%95%8C%E7%9A%84%E4%BA%BAsadha+sajdh%E6%95%B0%E6%8D%AE%E6%A0%B7%E6%9C%ACsdls+fhejrthcxzb.file.jpeg
PHP rawurlencode:
%E8%B6%85%E7%BA%A7%E6%97%A0%E6%95%8C%E7%9A%84%E4%BA%BAsadha%20sajdh%E6%95%B0%E6%8D%AE%E6%A0%B7%E6%9C%ACsdls%20fhejrthcxzb.file.jpeg
Javascript encodeURI:
%E8%B6%85%E7%BA%A7%E6%97%A0%E6%95%8C%E7%9A%84%E4%BA%BAsadha%20sajdh%E6%95%B0%E6%8D%AE%E6%A0%B7%E6%9C%ACsdls%20fhejrthcxzb.file.jpeg
Javascript escape:
%u8D85%u7EA7%u65E0%u654C%u7684%u4EBAsadha%20sajdh%u6570%u636E%u6837%u672Csdls%20fhejrthcxzb.file.jpeg
分享到:
相关推荐
在处理Web应用中的URL编码问题时,PHP开发者通常会使用rawurlencode和urlencode这两个函数。这两个函数都能对字符串进行编码,使得它们能够在URL中安全使用。然而,尽管这两个函数看起来十分相似,它们的用途和编码...
在PHP编程语言中,`urlencode` 和 `rawurlencode` 是两个用于编码URL字符串的重要函数,它们的主要区别在于编码规则和应用场景。这篇文章将深入探讨这两个函数的功能、差异以及何时使用它们。 `urlencode` 函数是...
下面是详细解释:///\\\ string urlencode ( string str) 返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST ...
在PHP中,有两个函数可以进行URL编码:urlencode() 和 rawurlencode()。这两个函数的基本功能是相似的,它们都是将字符串转换为URL编码格式,但它们在处理空格字符时有所不同。urlencode() 将空格转换为加号“+”,...
在PHP中,`urlencode()`和`rawurlencode()`函数常用于URL编码。`urlencode()`将非字母数字字符转换为百分号(%)编码,而`rawurlencode()`按照RFC 3986标准编码,对于空格使用加号(+)而不是百分号。这两个函数确保...
此外,PHP还提供了`rawurlencode()`和`rawurldecode()`函数。这两个函数与`urlencode()`和`urldecode()`类似,但它们遵循RFC 3986标准,对于某些字符(如"+"和"/")的处理有所不同。`rawurlencode()`会将空格编码为...
PHP的`urlencode`和`urldecode`函数可以实现URL编码和解码。然而,加密后的数据可能会包含非ASCII字符,这时我们需要先对加密结果进行Base64编码,因为Base64编码后的结果只包含可打印的ASCII字符。PHP的`base64_...
PHP提供了内置的函数来处理URL编码,如`urlencode()`用于编码单个字符串,`urldecode()`用于解码,还有`rawurlencode()`和`rawurldecode()`用于更严格的编码和解码,它们遵循RFC 3986标准,不对加号"+"和斜线"/"进行...
11. `rawurlencode`和`urlencode`的区别: - `rawurlencode`将空格转换为%20,而`urlencode`将空格转换为+。 12. PHP过滤HTML的函数是`strip_tags`,转义HTML特殊字符的函数是`htmlspecialchars`。 13. 过滤HTML...
您可能感兴趣的文章:PHP fopen 读取带中文URL地址的一点见解PHP中文URL编解码(urlencode()rawurlencode()php中解析带中文字符的url函数分享php中url传递中文字符,特殊危险字符的解决方法php下目前为目最全的CURL...
1. **PHP的字符串处理函数**:例如`iconv`用于字符集转换,`urlencode`或`rawurlencode`进行URL编码。 2. **Punycode扩展**:PHP可能需要安装如`idn_to_ascii`这样的扩展来实现Punycode转换。 3. **HTTP头处理**:...
- 除了`urldecode()`,还可以使用`rawurlencode()`和`rawurldecode()`。`rawurlencode()`在编码时不会对空格使用'+',而是使用'%',`rawurldecode()`则对应地解码。 在实际开发中,应该结合使用这些方法,确保数据...
虽然PHP内建的`urlencode`和`urldecode`函数可以处理大部分URL编码问题,但这些自定义函数更专注于处理Unicode和GBK编码的特殊情况。在实际开发中,根据具体需求选择合适的函数或自定义实现是十分重要的。
为确保兼容,可以使用PHP的`rawurlencode()`和`rawurldecode()`,以及JavaScript的`encodeURI()`和`decodeURI()`。 8. Memcache的key分布算法: Memcache通常使用一致性哈希算法,保证数据分布均匀。故障时,...
除了手动编码和解码,PHP还提供了一些其他函数来处理URL编码,如`rawurlencode()`和`rawurldecode()`,它们不编码加号 `+` 和斜杠 `/`,但同样不适用于处理UTF-8的中文字符。对于中文URL,`link_urldecode()`这样的...