我的項目是基於CodeIgniter,但我想這個問題根本不是關於它。
首先,我啓用了查詢字符串和搜索功能。搜索字符串傳遞到「搜索關鍵詞」變量,當我將其穿過的形式,它工作得很好,看起來像:
的http://本地的/ home /搜索/搜索關鍵詞= testtesttest
好了,現在當我在搜索表單中輸入一些西里爾字符串時,它也可以正常工作,例如:URI:
http:// local/home/search /?searchterm =привет(in chrome)或 http: // local/home/search /?searchterm = (在IE,Opera等)
以上兩種情況都可以正常工作,但是當我輸入CY RILLIC直接從地址欄搜索字符串(例如,在Opera或IE中),它不想搜索任何內容。 $ _GET ['searchterm']是空的,對於QUERY_STRING,它就像searchterm = (來自探查器的所有數據)。
我urldecode從控制器我的字符串,但它以某種方式不起作用。我也嘗試了一些iconv()的情況,從我的搜索引擎優化,但他們也沒有工作。
所以問題是爲什麼除chrome之外的所有其他瀏覽器都不從地址欄中檢索CYRILLIC $ _GET變量(如果從那裏輸入的話)?通過表單一切工作正常。
在此先感謝,夥計們。希望你的幫助。
P.S. 我還發現:
%D0%BD%D0%BE%D1%87%D0%B0%D0%BB%D0%BE
- 這是從表單傳遞,ACCEPT- charset被設置爲UTF-8。在那種情況下,正如我所說的,一切正常。和:
%ED%E0%F7%E0%EB%EE
- 這直接在地址欄鍵入裏面的字符串時,談到在地址欄中。所以我猜每個瀏覽器都會將我的西里爾文符號變成奇怪的東西...我不知道:(
不要忘了,用Chrome瀏覽器一切正常!也許這是因爲默認情況下,這個瀏覽器不編碼西里爾文符號像其他瀏覽器一樣錯誤的方式
有人嗎?請幫忙! – vadimyer
爲什麼不讓你的生活變得十倍容易,只需使用post而不是get? – Peter