您的位置:首页 > 产品设计 > UI/UE

jsp表单提交中文字符,request对象获取时乱码

2014-06-14 22:21 323 查看
jsp表单提交中文字符,request对象获取时乱码解决方法

第一种:
在request对象获取页面Charset中的“C”大写,且页面无中文字符,最好用英文,否则MyEclipse无法保存此页面编码(表单页面可以不大写“C”)
<%@ page contentType="text/html;Charset=GB2312" %>

第二种:
tomcat4.x支持中文传码,但5.x不支持,如果用5.0以上的版本就得转码了,
就是这种格式

<%@ page contentType="text/html;charset=GB2312" %>

String strKeyWords=new String(request.getParameter("key_words").getBytes("iso8859_1"),"gb2312");

 这个是我们的项目解决sqlserver中文乱码的方案,可以试试看

--------------------------------------------------------------------------

第三种:
 在  jsp、servlet中 申明这个方法转换一下: (表单JSP页面的编码一定要GB2312,且
charset中的“c”小写,此方法JSP页面就可以写中文字符
  即:<%@
page contentType="text/html;charset=GB2312" %>)
<%!public String handleString(String str){
try{
byte bb[]=str.getBytes("ISO-8859-1");
str=new String(bb);
}catch(Exception e){
System.out.println("字符转换失败"+e);
}
return str;
} %>

<%
String logname=request.getParameter("参数ID");
logname=handleString(logname);
%>




第四种:
在request对象获取提交的页面开头写(注意:此方法表单提交方式只能是post,而且表单页码的编码方式和request.setCharacterEncoding("utf-8");
必须保持一致)

<%@
page contentType="text/html; charset=utf-8"%> 
<% request.setCharacterEncoding("utf-8"); %> 

第一行是页面编码方式
第二行是传值编码方式

表单页面
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<body>
<form method="post" action="2.jsp">
<div align="center">
<input type="text" name="name">
<input type="submit" name="Submit" value="Submit">
</div>
</form>
</body>
</html> </span>

request对象获取页面
<%@ page contentType="text/html; charset=utf-8"%>
<% request.setCharacterEncoding("utf-8"); %>
<html>
<body>
<%=request.getParameter("name")%>
</body>
</html></span>



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: