簡單的請求,簡單的響應,但是亂碼產生了
Why?
亂碼之所以產生,原因很簡單,無非就是編碼表用錯了,如傳的是big5字符,接收卻使用utf-8,或utf-8編碼,卻用GB2312解碼。
好吧,先確認一下是否請求過程中產生的亂碼
那我發過去的是亂碼嗎?
打開C:/tmp/下的test.txt
這是什麼編碼,猜一猜?
看來客戶端沒錯,且正確地到了服務器端了,那應該是asp.net搞錯了編碼了,HttpRequest類裡找下有沒有相關的Encoding相關的屬性
看看web.config吧
測試一下修改成utf-8看看
原因成功找到,看來就是客戶端傳utf-8,然後服務器端big5接收產生問題
不過這個專案不能這樣解決,因為這個舊專案跑了很久了,改這裡可能影響以前的其它程式,那就改客戶端吧,設置請求屬性為utf-8,讓asp.net不迷茫
修改ajax請求代碼,設定charset屬性
問題得以解決,不過最近也有在vs2005中使用jquery,沒有發生亂碼,可能是vs2005已經默認為utf-8了(有空再去找下是在哪裡默認的,或那位TX告知一下)
vs.net2003默認是本機操作系統的編碼,如big5,gb2312,因此常常發生亂碼問題.
另,分享一個簡單的文本文件的亂碼查看方法.
對於一些不是以txt結尾的文本檔(如aspx,cs),可以先將後綴改為txt,然後再打開IE看,否則IE會不認得,直接下載
圖片太多,請網速慢的TX原諒~~