form提交参数乱码问题
form提交参数乱码问题
调用submit方法提交,后台是springMVC的Controller接收请求,结果得到的参数值都是乱码。
解决方法:为form表单再设置一个属性 enctype=‘mutipart/form-data’ ,此时后台接收到的值就没有乱码了。
分析如下:
enctype属性如果不设置,默认是“application/x-www-form-urlencoded”,该选项是告诉浏览器默认使用URL编码(就是字符流)的形式发送请求,而‘mutipart/form-data’是告诉浏览器使用二进制(就是字节流)的形式发送请求,因为直接使用了二进制,所以不存在字符编码不统一的问题,也就规避了中文乱码的问题。
后端代码用该方法进行转换。
string fields = Request.Params["form的相关接收参数"].ToString(); fields = HttpUtility.UrlDecode(fields, System.Text.Encoding.UTF8);//给form传递方式用字节流,不用字符流。
ok~