作者steny138 (阿辰)
看板Web_Design
標題[問題] 請問大家 post的時候關於中文參數
時間Fri Sep 4 13:27:53 2015
事情是這樣的....
系統開新視窗時, 因為不想把參數都用get串在網址上
所以會先開啟空白視窗, 再寫javascript 把傳入參數帶入 form post 做submit換頁
所以看起來就像window.open, 但是網址不會有參數串在上面,因為是post
Chrome 更新版本後, 發現網頁編碼不能直接透過document.charset直接更改,
已至於傳入的參數若有中文都會產生亂碼
這時就有個同事說 為什麼中文都不先做url encode呢? 這應該是基本吧
問題是....程式是用 form post的方式, 難道每個網頁post下一頁,
每個input參數都需要先做url encode編碼過, 下一頁再全部decode嗎
請問一下...我是真的基礎不好嗎 ? :( 覺得桑腥
所以form post都需要先對所有 form data 做...url encode?
PS:上述問題原因是 chrome新版本不能直接修改document.charset
當原本開啟的時候不知為何預設是big5無法直接改成utf8
所以 big5 submit到 utf8 編碼不同導致文字亂碼!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.78.2
※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1441344475.A.935.html
→ LPH66: 本來就規定 post 出去的資料都是 urlencode 過的東西了 09/04 14:07
→ LPH66: 伺服器在收到資料解碼後才送給你寫的伺服器程式 09/04 14:09
推 hit1205: 不過原po是用form送出... 這樣應該不是url encode的問題? 09/08 18:12
→ hit1205: <form>預設本來就會把資料encode才送出吧 09/08 18:13
→ hit1205: 另外我查了一下,document.charset是Chrome45移除的 09/08 18:14
→ hit1205: 而且並不是標準的一部份(Firefox則是不支援) 09/08 18:14
推 hit1205: 至於原po說預設是預設是big5,這點有兩種因素會影響 09/08 18:17
→ hit1205: 一個是<meta>指定的值,要不要在空白頁裡加上編碼的指定? 09/08 18:17
→ hit1205: 另一點則是伺服端送出的header 09/08 18:18
→ steny138: 後來利用form的accept-charset指定為utf8比較輕鬆! 09/08 22:14