urlencode错误的结果是不对的

时间:2014-05-02 19:16:33

标签: php urlencode

我的php脚本发送此脚本

$this->afterbuyString.="&Zahlart=".urlencode($sOrder->sUserData['additional']['payment']['name']);

我已经记录了发送详细信息并显示了这个:

Vorkasse%2F%C3%9Cberweisung and result show Vorkasse/Ãœberweisung

正确的文字是Vorkasse /Überweisung

我做错了什么?在同一个脚本中我有其他字符串:

$this->afterbuyString .= "&Artikelname_".($i)."=".urlencode((utf8_decode($singleProduct['articlename'])));

这就好了,发送它urlencode Spannungspr%FCfer和sho右Spannungsprüfer

1 个答案:

答案 0 :(得分:1)

可以通过多种方式对字符“Ü”进行编码。 URL编码只是将字符串所在的任何编码的基础字节转换为百分比编码表示法。这意味着,UTF-8中的“Ü”被编码为字节序列C3 9C,这就是您在URL中看到的内容。接收服务然后将其转换回字符串。然后这个字符串需要被解释为UTF-8,所以你会得到相同的字符“Ü”。但显然它被解释为Latin-1,所以你会看到两个不同的角色代替“Ü”。

请阅读What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text以更好地掌握相关主题并弄清楚您做错了什么。