form表单提交controller层接收到的值为乱码的问题
今天遇到个中文乱码问题,大体情况是这样的:前台有一个form表单,其中有几个input的控件,值是带中文的,form表单只设置了id='form1' method='post' action='xxx'
调用submit方法提交,后台是springMVC的Controller接收请求,结果得到的参数值都是乱码。
解决方法:为form表单再设置一个属性 enctype=‘mutipart/form-data’ ,此时后台接收到的值就没有乱码了。
分析如下:
enctype属性如果不设置,默认是“application/x-www-form-urlencoded”,该选项是告诉浏览器默认使用URL编码(就是字符流)的形式发送请求,而‘mutipart/form-data’是告诉浏览器使用二进制(就是字节流)的形式发送请求,因为直接使用了二进制,所以不存在字符编码不统一的问题,也就规避了中文乱码的问题。
如有不准确的地方,请各位大牛给予更详细的分析。