作者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://webptt.com/cn.aspx?n=bbs/Web_Design/M.1441344475.A.935.html
2F:→ LPH66: 本来就规定 post 出去的资料都是 urlencode 过的东西了 09/04 14:07
3F:→ LPH66: 伺服器在收到资料解码後才送给你写的伺服器程式 09/04 14:09
4F:推 hit1205: 不过原po是用form送出... 这样应该不是url encode的问题? 09/08 18:12
5F:→ hit1205: <form>预设本来就会把资料encode才送出吧 09/08 18:13
6F:→ hit1205: 另外我查了一下,document.charset是Chrome45移除的 09/08 18:14
7F:→ hit1205: 而且并不是标准的一部份(Firefox则是不支援) 09/08 18:14
8F:推 hit1205: 至於原po说预设是预设是big5,这点有两种因素会影响 09/08 18:17
9F:→ hit1205: 一个是<meta>指定的值,要不要在空白页里加上编码的指定? 09/08 18:17
10F:→ hit1205: 另一点则是伺服端送出的header 09/08 18:18
11F:→ steny138: 後来利用form的accept-charset指定为utf8比较轻松! 09/08 22:14