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’是告诉浏览器使用二进制(就是字节流)的形式发送请求,因为直接使用了二进制,所以不存在字符编码不统一的问题,也就规避了中文乱码的问题。
如有不准确的地方,请各位大牛给予更详细的分析。
本文来自博客园,作者:AI粉嫩特攻队,转载请注明原文链接:https://www.cnblogs.com/anai/p/4384178.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通