2012-02-14 101 views
1

我正在研究現有項目。在某些點上它有一些不好的實現。使用php和javascript進行URL編碼?

例如,我發現在動作下面的代碼:

<?php 
    echo "<script>window.location='/".$this->getRequestParameter("culture")."/profile/".$this->username';</script>"; 
?> 

在正常情況下上面的代碼工作正常,併成功地重定向用戶。

Uneståhl 

它轉換成

Unestål 

,並返回服務器錯誤:但如果用戶名是這樣發生的問題。

任何想法如何解決這個問題?

感謝

+0

當你看到它的轉換? – 2012-02-14 11:14:16

+0

當它被重定向時,我在瀏覽器地址欄中看到了轉換後的代碼。 – Awan 2012-02-14 11:17:11

+0

我剛試過這樣的東西(使用'window.location ='Uneståhl'),瀏覽器沒有改變這個值。試用IE9和Chrome。你試過什麼瀏覽器? – 2012-02-14 11:32:23

回答

2

你可以嘗試使用PHP urlencode功能:

<?php 
    echo "<script>window.location='/".$this->getRequestParameter("culture")."/profile/".urlencode($this->username). "';</script>"; 
?> 
+0

已修正,但正在使用'urlencode()'。 'url_encode()'給我找不到函數的錯誤。 – Awan 2012-02-14 12:17:47

+0

你說得對。對不起,這個錯誤。我會更新答案。 – 2012-02-14 12:18:34