为什么我的PHP urlencode在互联网上不起作用?

时间:2015-03-02 16:39:44

标签: php web encode

为什么我的urlencode()会产生与我预期不同的东西?

这可能是我的错误,但后来我会更加困惑。

例如

urlencode("ä");

expectations = returns %C3%A4

reality = returns %E4

我的考试在哪里出错了?它似乎与编码有关。但我对自己应该做什么/使用的方式不太熟悉。

我应该将服务器上的内容更改为该函数使用正确的编码吗?

1 个答案:

答案 0 :(得分:2)

urlencode将字符串中的原始字节编码为百分比编码表示。如果您希望%C3%A4表示您希望UTF-8字节表示为“ä”。如果你得到%E4,那意味着你的字符串实际编码在ISO-8859-1中。

以UTF-8编码您的字符串以获得预期结果。如何执行此操作取决于此字符串的来源。如果它是源代码文件中的字符串文字,请将文件保存为文本编辑器中的UTF-8。如果它来自数据库,请参阅UTF-8 all the way through

有关更多背景信息,请参阅What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text