开发者社区> 问答> 正文

html当表单name为中文时,servlet无法识别该中文属性传递的值

html中

select name="颜" 
option value="红">红</option
servlet中String color=request.getParameter("颜");
response.setContentType("utf-8");
PrintWriter pw =response.getWriter();
pw.println(color);

结果:The selected color is: null
并不是给参数设置中文出现乱码,而是给需传递的属性命名时使用了中文,无法传递。
尝试过将html另存为utf-8,unicode,没效果。
在页面为ansi格式的时候,因为用的get方式,可以看到明文传递值是%D1%D5,将servlet改为getParameter("%D1%D5"),getParameter("D1D5")也都无效。
平时也不会用中文做传递值名,只是无意中发现这种情况,想请问下原因和处理方法。

展开
收起
小旋风柴进 2016-03-16 10:48:31 3404 0
1 条回答
写回答
取消 提交回答
  • response.setContentType("utf-8"); 括号中少个东西, response.setContentType("text/html;charset=UTF-8");加上这个试试

    2019-07-17 19:03:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《零基础HTML入门教程》 立即下载
天猫 HTML5 互动技术实践 立即下载
天猫HTML5互动技术实践 立即下载