【问题标题】:Is there a way in PHP to encode special characters so they can be used in an URL?PHP 中有没有办法对特殊字符进行编码,以便它们可以在 URL 中使用?
【发布时间】:2013-02-21 20:33:35
【问题描述】:

我有一个来自这样的 AES 加密的字符串 -> "‚±«~—ÄÔý 3ƒÛœÛ" 有没有办法对这个字符串进行编码,以便可以通过 URL 将其传输到脚本?

谢谢!

【问题讨论】:

  • 你的意思是像urlencode()这样的函数?
  • urlencode 不起作用,因为当我使用 urldecode() 解码字符串时,它不会给我使用 urlencode 编码的原始字符串。编辑:base64 相同
  • rawurlencode(),然后呢?

标签: php url aes encode


【解决方案1】:

是的!

使用全局函数

urlencode($string)

如果您想获取原始参数,您可以使用以下方式解码 URL 参数:

urldecode($string)

【讨论】:

  • mhh,我认为它不适用于 urlencode... 这是 urldecode 后字符串的样子 -> "‚±«~â€"ÄÃ" ý 3Æ'ۜ۔
  • 如果是通过 URL 实际传输,则无需解码。您描述的问题是另一个问题:客户端和服务器似乎使用不同的字符编码。
  • 当然,解码只是举例,你知道如何绕过字符编码的问题吗?
【解决方案2】:

您可以为该任务使用 urlencode 或 base64_encode,两者都会生成 url 安全字符串

【讨论】:

  • echo urldecode(urlencode("‚±«~—ÄÔý 3ƒÛœÛ")) -> ‚±«~—ÄÔý 3Æ'ÛœÛ echo base64_decode(base64_encode("‚±«~—ÄÔý 3ƒÛœÛ")) -> ‚±«~—ÄÔý 3Æ'ÛœÛ
  • 问题解决了!不是功能的问题,而是客户端和服务器之间的编码问题!
猜你喜欢
  • 2019-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-10
  • 2021-06-03
相关资源
最近更新 更多