請教各位,
假設前端網頁ajax傳送了一串中文字到後台,
有辦法的知他是什麼編碼(預設)?
有辦法強制轉換?
因我在後端強制轉BIG5似乎有點問題,轉UTF8沒問題,
不太清楚傳到後台是以什麼樣的形式傳送,
預設UTF8?有套件可改BIG5?查了一下前端好像不好操作
因有些盲點,不清楚是不是傳來的是UTF8,
後台就無法強制轉BIG5只能轉到對應的UTF8,
還是有其他盲點?
BIG5編碼的網站,在十年前就已經被淘汰了,因為BIG5中文字裡面,有很多字會與程式語言衝碼,所以過去在CGI與Perl的時代,處理上就已經很麻煩,就算進入PHP與ASP時代,還是沒變,因為中文字是雙位元,其代碼是由系統符號組合而成的,因此有很多字會衝碼。
而且我們的電腦系統(XP,WIN2000,WIN7...)裡面所打的中文字,也不是BIG5編碼,那是經過轉換的,就拿你用注音打的字來說,裡面就有很多不是BIG5碼,所以不要再用BIG5,UTF-8編碼,網頁上同時可以顯示繁體簡體中文,日文,韓文.....。
Ajax傳遞資料,是使用JSON格式的純文字型態,必須先經過json_encode編碼之後(轉成純文字),再丟出去,因此,若裡面有中文字,經過編碼之後,中文字就會變成代碼,接收端收到後,用json_decode還原回原來的型態。
但是這裡面要注意的是,如果你是使用Appserv或XAMP等軟體,架Server在自己的電腦上(XP等視窗軟體),json_encode編碼之後的字串內,雙引號會被多加上反斜線,如果沒有先處理就json_decode還原資料,你會永遠得不到資料。