2010-04-20 117 views
3

我試圖使用JQuery的自動完成插件,但由於某些原因,Internet Explorer與其他瀏覽器不兼容: 當「autocompleted」字符串中有一個口音時,它將它傳遞給另一種編碼。Ajax/Internet Explorer編碼問題

IP - - [20/Apr/2010:15:53:17 +0200] "GET /page.php?var=M\xe9tropole HTTP/1.1" 200 13024 "http://site.com/page.php" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" 

IP - - [20/Apr/2010:15:53:31 +0200] "GET /page.php?var=M%C3%A9tropole HTTP/1.1" 200 - "http://site.com/page.php" "Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2" 

我想知道如果有反正我仍然可以解碼這些變量輸出相同的結果。

回答

1

第一個(IE)是unicode你可以嘗試php的unicode函數來處理它。

http://php.net/manual/en/function.utf8-decode.php

第二個被URL編碼。 PHP也有處理網址編碼的方法。

http://php.net/manual/en/function.urldecode.php

+0

您好,感謝您的回答,我可以同時解碼兩個? – Roch 2010-04-20 14:09:18

+0

可以通過每個函數運行相同的字符串。更糟糕的情況下,你可能必須檢測IE8客戶端,並做一些稍微不同的事情。 – vfilby 2010-04-20 16:40:52