汉字问题!(50分)

  • 主题发起人 sunyufa100
  • 开始时间
S

sunyufa100

Unregistered / Unconfirmed
GUEST, unregistred user!
在jsp中从一个页面传带有汉字的参数到下一个页面。用表单的方式提交没问题,但用超链
的形式取出来的值就“????。。。”,我试过好几种取汉字的方法,都没有成功!不知各位
有何高见,小弟在此敬奉50分!
 
JSP我不懂,在ASP中这种情况很多是因为用了htmlencode()和urlencode()函数,把他们去掉就
好了。另外数据库用ACCESS的也会出现乱麻现象
 
String para1 = request.getParameter("para1")==null?"":request.getParameter("para1");
para1 = new String(para1.getBytes("iso8859-1"),"GBK");
 
<HTML>
<HEAD>
<TITLE> Newdo
cument </TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert(encodeURI('http://aaa.asp?xx=在地一辈子'));
//-->
</SCRIPT>
</BODY>
</HTML>
 
谢谢上面几位老兄的回答,我试了一下,还是不行。我遇到的情况是这样的:
<form name="test" action="loaclhost/test1.jsp">
<input type="hidden" name="filename" value="汉字">
</form>
在test1.jsp页面中
String filename= new String(request.getParameter("filename").getBytes("ISO8859_1"), "EUC-CN");
可以正常取汉字来;
但用下面这种方法就出问题了
<a href="localhost/test1.jsp?filename=汉字">
用同样的方法取出的却是”????“!
 
对“汉字” 用 encodeURI 进行编码,
动态生成 href
 
换成这样试试:
<%@ page contentType="text/html;charset=gb2312"%>
String filename= new String(request.getParameter("filename").getBytes("gb2312"), "Unicode");
 
写错了应该是这样(我已经试过了,可以)
<%@ page contentType="text/html;charset=gb2312"%>
String filename= new String(request.getParameter("filename").getBytes("ISO8859-1"), "gb2312");
 
用自不量力的办法应该可以解决。
我还有另外一个办法,简单方便:
<form name="test" action="loaclhost/test1.jsp">
<input type="hidden" name="filename" value="[:D]<%=java.net.URLEncoder.encode(汉字)%>">
</form>
 
我使用的web服务器是Apache服务器,我怀疑是服务器配置的问题。因为我的程序在另外一台apache服务器
上又不存在这个问题,不知服务器上还需要进行一些什么设置?!我使用的操作系统是Solorias!
 
你的Servlet API的版本是多少
如果是2.3,试试下面的方法
request.setCharacterEncoding("GBK");
String filename= request.getParameter("filename");
 
多人接受答案了。
 
顶部