[問題] 請問大家 post的時候關於中文參數

看板Web_Design作者 (阿辰)時間10年前 (2015/09/04 13:27), 編輯推噓3(308)
留言11則, 3人參與, 最新討論串1/1
事情是這樣的.... 系統開新視窗時, 因為不想把參數都用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


09/04 14:07, , 2F
本來就規定 post 出去的資料都是 urlencode 過的東西了
09/04 14:07, 2F

09/04 14:09, , 3F
伺服器在收到資料解碼後才送給你寫的伺服器程式
09/04 14:09, 3F

09/08 18:12, , 4F
不過原po是用form送出... 這樣應該不是url encode的問題?
09/08 18:12, 4F

09/08 18:13, , 5F
<form>預設本來就會把資料encode才送出吧
09/08 18:13, 5F

09/08 18:14, , 6F
另外我查了一下,document.charset是Chrome45移除的
09/08 18:14, 6F

09/08 18:14, , 7F
而且並不是標準的一部份(Firefox則是不支援)
09/08 18:14, 7F

09/08 18:17, , 8F
至於原po說預設是預設是big5,這點有兩種因素會影響
09/08 18:17, 8F

09/08 18:17, , 9F
一個是<meta>指定的值,要不要在空白頁裡加上編碼的指定?
09/08 18:17, 9F

09/08 18:18, , 10F
另一點則是伺服端送出的header
09/08 18:18, 10F

09/08 22:14, , 11F
後來利用form的accept-charset指定為utf8比較輕鬆!
09/08 22:14, 11F
文章代碼(AID): #1LwIlRar (Web_Design)
文章代碼(AID): #1LwIlRar (Web_Design)