表单中的method属性引起的表单中文乱码问题
提交表单遇到中文乱码,百度发现编码各种没问题,有点想不懂,后来发现竟然是因为表单的method属性忘记设置引起。
?
1、没有设置method的话默认是get方法传递。
?
2、采用 GET 方法,这时浏览器会与表单处理服务器建立连接,然后直接在一个传输步骤中发送所有的表单数据:浏览器会将数据直接附在表单的 action URL 之后。这两者之间用问号进行分隔。(抄来的)
????? 也就是说数据会接在地址后面,例如XXXXX?id=1&nid=2&sid=4,猜想到如果数据是中文,第一种可能是URL不接受中文编码,所以出现乱码。第二种可能是URL中的编码仍然是可读取的中文编码,但是会打乱传参格式,也就是?开始,&连接的格式,所以接受时出现乱码。究竟是哪种情况没做实验就不知道了。
?
3、采用 POST 方法,浏览器将会按照下面两步来发送数据。首先,浏览器将与 action 属性中指定的表单处理服务器建立联系,一旦建立连接之后,浏览器就会按分段传输的方法将数据发送给服务器。
?
???? POST方法中数据会隐藏起来,也就是在URL中看不到数据,具有保密性。
?
?
没什么技巧,就是注意表单要设置method属性