之前使用AJAX時,因編碼大都使用big5碼,這使得送出或者取回資料都是亂碼,為了
解決此一問題,想了很多的方法試著來解決,但都有缺陷或者完全失敗,這耗掉了不
少的時間,今天總算是瞭解,為何使用非西歐字集的資料使用非UTF8編碼,資料就會
亂掉的原因,在於若無指定編碼格式時JavaScript就會使用預設的UFT8傳送或者接收
資料,經這麼轉碼後,資料當然會亂掉,今天腦筋一轉,試著在送出的HEADER中加入
編碼方式,結果如預期中,當指定了編碼格式後,中文亂碼問題就解決了
方法細節
從伺服器端取回資料,各語言的解決方式
PHP:
header('Content-Type:text/html;charset=big5');
ASP And ASP.NET:
Response.Charse="big5" ;
JSP:
response.setHeader("Charset","big5");
送出資料至伺服器端時
則將送出的資料經過urlencode編碼後送至伺服器就不會產生亂碼。
至於urlencode使用JavaScript實作細節則不方便透露,vBB中有
實作的細節,自行參悟....
結果如下
未指定編碼時取回資料是亂碼
指定編碼後,中文顯示就正常了
沒有留言:
張貼留言