2 qq1252776430 QQ1252776430 于 2016.03.08 13:45 提问

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")也都无效。
平时也不会用中文做传递值名,只是无意中发现这种情况,想请问下原因和处理方法。

4个回答

crazy_snail_
crazy_snail_   2016.03.08 14:58

设置一下字符集,utf-8,然后获取的时候在java设置字符集试试

rui888
rui888   Ds   Rxr 2016.03.08 15:19

为什么你的name 要用中文呢。还有你的项目工程字符集设置下。

kzy8462
kzy8462   2016.03.08 15:23

response.setContentType("utf-8"); 括号中少个东西, response.setContentType("text/html;charset=UTF-8");加上这个试试

Royal_lr
Royal_lr   Ds   Rxr 2016.03.08 17:22

name一般不会用中文,,

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
html中form表单提交中文乱码问题基本解决办法
办法很简单,只需在form表单中加入下面的话:&amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&amp;gt; &amp;lt;/head&amp;gt; &amp;lt;form action=&quot;http://h5.dev.ejoyst.com/file/
servlet读取表单数据和返回页面时的中文乱码问题
用myeclipse做了一个最简单的表单处理servlet,可是竟然出了N多错误.MyHtml.htmlFront end to ThreeParams servlet.Taken from Core Servlets and JavaServer Pages 2nd Editionfrom Prentice Hall and Sun Microsystems Press,http:/
前端开发日记之form表单name属性详解
我们知道,$("#Form").serialize(),提交的是表单里控件的value值,并且是根据form里面的name属性来获取这些value值的。 今天,我们就来谈一谈form表单里的name属性可能给我们带来的困扰。 大家看如下代码: 我们发现当form表单的name值和我们的js函数重名时,js函数就无法调用,会提示“Uncaught TypeError: test
Servlet实现数据的传递及乱码的解决
实现从JSP页面的表单跳转到Servlet2,Servlet2跳转到Servlet3,Servlet3获得输入的参数: jsp: web.xml Servlet2: Servlet3: 其中,在用方法1: response.sendRedirect(“servlet3”)时,只能实现从Servlet2到Servlet3的跳转, 却无法把username和password的值传递
表单提交后数据中文乱码的终极解决方案
1、查看页面是否使用utf-8编码①jsp页面:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>②html页面:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />2、在数据库连接ur
解决jsp页面之间或者servlet向jsp页面通过重定向传值时遇到中文的问题
编码心得:   遇到了jsp页面传值中文乱码和空值的问题,经过许多尝试,终于解决了!!!           当jsp页面之间通过.jsp?value="**"传值,或者servlet通过重定向response.sendRedirect(*.jsp?value="**")进行传值时,遇到中文,如果接收页面无法获取到中文字符或者乱码时,必须要进行转码! 例如: /* * 这句话非常
关于HTML中表单输入标记<input>的radio与checkbox属性的值传递
首先举一个标记的语法格式例子:
[HTML]表单form的method属性get/post区别
一、问题的提出    action="getPostServlet/getPost.do?param4=param4" method="get">                      button1" value="submit"> 注意到表单中action:getPostServlet/getPost.do?param4=param4 这个action带有一个参数pa
html 笔记1 (表单提交时汉字为乱码的处理)
html1设置文字格式      //utf-8即可写入汉字  2 加入复选框  3333333    // 表单提交后,为checkbox=33  加如提交按钮submit &nbsp   // 表单提交后  格式为 log=open4链接跳转 ADM状态// 当点击”ADM状态“后网页转到state.html5自动跳转printf("\      //这加\  表示下一行和这行为一行 \ ")
jsp数据提交至servlet中文乱码
【出现乱码的原因】         首先无论使用get方式提交,还是post方式提交,如果参数中包含中文,浏览器都会使用当前浏览器编码对其进行URL编码,然后服务器端再进行URL解码,如果浏览器提交数据的编码和服务器接收数据的编码格式不一致,那么就有可能产生中文乱码。在ie中可以通过菜单栏--查看---编码查看编码格式。 【post方式提交乱码解决方法】   对于表单中POST方