请教关于jsp传中文的问题

问题描述

这是我传值界面<%@pagecontentType="text/html"import="java.util.*,beans.CginfoBean,java.net.*"pageEncoding="gbk"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>JSPPage</title></head><body><%Stringid=request.getParameter("id");%><h1>下载列表</h1><%CginfoBeanfindalluser=newCginfoBean();Stringusername=null;username=findalluser.finduserbyid(id);Listli=findalluser.GetFilename(username);Iteratorit=li.iterator();while(it.hasNext()){Stringfilename=null;filename=(String)it.next();%><ahref="download.jsp?id=<%=id%>&filename=<%=java.net.URLEncoder.encode(filename,"gb2312")%>"><%=filename%></a><%}%></body></html>

这个是我的接受界面<%@pagelanguage="java"import="beans.CginfoBean"contentType="text/html;charset=gb2312"pageEncoding="gb2312"%><%@pageimport="java.util.*,java.io.*"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>DOWNLOAD</title></head><body><%request.setCharacterEncoding("gbk");Stringfilename=newString(request.getParameter("filename").getBytes("gb2312"),"gbk");%>

现在只能接到英文或数字的如果传中文的话就不行请问怎么解决?

解决方案

解决方案二:
恕我直言,你这种写法真是很不好,你得确保你一个页面里面出现的编码是统一的,这样才可以正常。解决方法如下:1,你的传值页面的第一句话中的编码改成:pageEncoding="UTF-8"2,第二个页面的第一句话改成这样:<%@pagelanguage="java"import="beans.CginfoBean"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>3,第二个页面里面的<%%>里面的代码改成如下:request.setCharacterEncoding("UTF-8");Stringfilename=request.getParameter("filename");这样应该就可以解决问题了。原因如下:你第了个页面发过去的值是用UTF-8进行编码再传递,但是在接受页面接收时却认为它是用gbk编码进行编码的,当然不会有正常的结果了。就像你用钱买了一个MP3,却希望它能像微波炉一样发挥功能是一个道理。至于为什么传英文没问题,是因为上述两种编码编西方英文字符时编成的结果是一样的,也就是说有相同的二进制序列,所以什么编码都不影响英文。
解决方案三:
接收页面修改成以下这样<%@pagelanguage="java"import="beans.CginfoBean"contentType="text/html;charset=utf-8"pageEncoding="utf-8"%><%@pageimport="java.util.*,java.io.*"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>DOWNLOAD</title></head><body><%request.setCharacterEncoding("utf-8");Stringfilename=newString(request.getParameter("filename").getBytes("iso-8859-1"),"utf-8");%>

解决方案四:
学习了。

时间: 2024-10-24 15:01:57

请教关于jsp传中文的问题的相关文章

js向jsp传中文出现乱码的解决方法

不管你是在js中用encodeURIComponent还是encodeURI对所要传递的内容转码两次就可以了,然后在jsp中java.net.URLDecoder.decode进行解码,中文即可显示正确. js var username = "我是中文";  encodeURIComponent(encodeURIComponent(username);  或者 var username = "我是中文";  var url = "http://local

jsp页面间传中文参数示例

 在url地址栏使用中文传参数可能会是乱码了,下面我们来看看正确的jsp中页面间传中文参数转码的方法  转码:    代码如下: a.href="./showCont.jsp?tcontent="+encodeURI(encodeURI(tcontent));     解码:   代码如下: java.net.URLDecoder.decode((String)request.getParameter("tcontent"), "UTF-8");

Flex和Jsp之间中文参数的传递

js|中文 关于flex的中文问题,可算是老生常谈了,但是大家还有不少人总是在这方面犯错误,包括kenshin在内,也走了一些弯路,所以现在就把关于flex的中文参数问题在好好谢谢,如果有写的不对的地方,还请大家原谅 其实中文问题的解决,无外乎就是编码的一致性问题,举个例子,比如两个人进行交流,那他们的语言必须是一致的,这样双方才能听懂对方所说的话,这在现实的生活中是一个常识,在编程的时候,道理是一样的,要想使flex和jsp都"说同样的话",首先要把他们的编码,也就是"语言

JSP+ MySQL中文乱码问题post提交乱码解决方案

当提交的数据中含有中文(比如变量姓名的值为中文)时,mysql_insert.jsp页面上显示新增的那条记录中的相应中文(姓名的值)乱码   写了两个jsp页面index.jsp和mysql_insert.jsp.数据处理流程为:在浏览器(chrome)上访问index.jsp后在其表 单上输入数据,提交至mysql_insert.jsp,mysql_insert.jsp首先将接收到的数据按变量存入MySQL的html_db数据 库的person_tb中(该表原有部分数据),然后mysql_in

java前台传中文到后台乱码问题,还有浏览器的差异

问题描述 java前台传中文到后台乱码问题,还有浏览器的差异 前台通过url的形式传中文参数,后台用 String parvalue = new String( request.getParameter("parvalue").getBytes("ISO8859-1"), "utf-8"); 这样接受,在谷歌浏览器上没问题,但在IE浏览器,QQ浏览器上却是乱码. 然后换个方式,前台url += "&area=" + e

a 标签传值乱码问题,从一个jsp传到另外一个jsp

问题描述 a 标签传值乱码问题,从一个jsp传到另外一个jsp 从jsp传到jsp ...........http://ask.csdn.net/my# 解决方案 用encodeURIComponent编码下,encodeURIComponent编码2次 而且你的shopName和goodsName要用引号括起,要不会出错.. var shopName=encodeURIComponent(encodeURIComponent('${param["shopName"]}')) var

jsp mysql 乱码-jsp连接数据库中文显示乱码

问题描述 jsp连接数据库中文显示乱码 在网页中向mysql添加中文数据,再从数据库中获取此数据并在网页上显示,结果中文显示的是乱码,数据库中显示的也是乱码,请问该怎么解决? 解决方案 request.setCharacterEncoding 解决方案二: 检查jsp和服务器端的编码是否一致,服务器端与数据库安装环境是否一致,安装环境与数据库的编码是否一致(可以通过客户端添加数据,看是否乱码). 解决方案三: 直接弄一个SpringMVC的字符接拦截器,把所有的都编码成UTF-8 解决方案四:

JSP+ MySQL中文乱码问题post提交乱码解决方案_JSP编程

写了两个jsp页面index.jsp和mysql_insert.jsp.数据处理流程为:在浏览器(chrome)上访问index.jsp后在其表单上输入数据,提交至mysql_insert.jsp,mysql_insert.jsp首先将接收到的数据按变量存入MySQL的html_db数据库的person_tb中(该表原有部分数据),然后mysql_insert.jsp再拿出该表中所有数据显示在mysql_insert.jsp页面上. 现在发现,当提交的数据中含有中文(比如变量姓名的值为中文)时,

从js向Action传中文参数出现乱码问题的解决方法_javascript技巧

做项目的时候,发现Action获取jsp表单中的中文参数,只要整个项目都采用UTF-8编码格式都不会出现乱码问题:但JSP中用到JS,并从JS向Action传中文参数,就会出现中文乱的现象.几经询问百度,上面说法很多. 经过实践发现下面的方法可以解决中文乱码问题: JSP的JS中:中文参数用encodeURI(encodeURI(中文参数)),经过两次转码.例如: 复制代码 代码如下: function show(next,id,realName){ document.forms['f2'].a