为什么我的urlencode()
会产生与我预期不同的东西?
这可能是我的错误,但后来我会更加困惑。
例如
urlencode("ä");
expectations = returns %C3%A4
reality = returns %E4
我的考试在哪里出错了?它似乎与编码有关。但我对自己应该做什么/使用的方式不太熟悉。
我应该将服务器上的内容更改为该函数使用正确的编码吗?
答案 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。