gpt4 book ai didi

php - 为什么 PHP 的 urlencode 使用不同的 URL 编码?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:04 25 4
gpt4 key购买 nike

η的URL编码为%CE%B7。但是在 PHP 中,当我写 echo urldecode("%ce%b7");

时,我得到了一些奇怪的符号

相反,如果我写 echo urlencode("η"); 然后我得到 %26%23951%3B。为什么我不能使用 %CE%B7

解决方案

问题是我们使用了 typo3。它有些不使用 unicode 进行内部处理。一旦我们在 typo3 中设置 $TYPO3_CONF_VARS['BE']['forceCharset'] = 'utf-8'; echo urldecode("%ce%b7"); 的输出 是正确的。

为什么 echo urlencode("η"); 给我 %26%23951%3B 请看 Joni 的回答。

最佳答案

urldecode("%ce%b7") 生成 η 以 UTF-8 编码。如果您使用其他编码查看输出,您可能会看到其他内容。

另一方面,当你解码 %26%23951%3B 时,你确实没有获得 η;您获得 η 这是 η 的 HTML 实体代码。要解码实体代码,请使用 html_entity_decode:

echo html_entity_decode('η', false, 'UTF-8'); // prints η, encoded in UTF-8

关于php - 为什么 PHP 的 urlencode 使用不同的 URL 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12916925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com