問題描述,采用gbk頁面傳輸中文到後台,後台顯示亂碼。
經過查看原來是prototype把前台的gbk自作聰明變成了utf8(這是合理的方法哈),造成後台無法取得正確的編碼。
經過考慮還是用後台來解決亂碼問題,網上找了幾個urlencode的函數都不行,所以還是用PHP本身解決這個問題比較省心。如下的函數:
- iconv("UTF-8", "GBK//IGNORE",substr(Char_cv($pwuser),0,50));
注意輸出編碼的解釋IGNORE這個非常重要,後來在網上查到了一個帖子和我一樣的問題,現在終於解決了全部的問題。
總結下prototype的亂碼問題:
1 出來的亂碼:這種問題可以在服務器配置是解決,我利用apache的defaultcode解決
2 進去的亂碼:我建議大家還是用服務器端方法解決,這種方法效率比JS解決高效些,也就是上述的表述。
最後表達下一條建議,建議如果沒有歷史問題,所有頁面使用utf-8編碼比較好,這個問題不僅是prototype我相信jquery或者yui都會有,因為utf-8才是最好的編碼,也省卻了很多麻煩,所以在使用這些東西的時候最好還是用utf8的頁面。