2014-05-02 28 views
-2

我的PHP腳本發送此腳本進行urlencode錯誤的結果是不正確的

$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昭右Spannungsprüfer一切ok

+0

你的第二個命令除了'urlencode'之外還使用'utf8_decode'。也許試試第一個呢? –

+0

哦,謝謝,現在的作品:) – user3596240

回答

1

有很多方法了字母「U」進行編碼。 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以更好地掌握該主題並弄清楚您做錯了什麼。