高分 在线 急求 Servlet获取参数中文编码为乱码

haoztao 2012-02-27 04:30:06
tomact中目前编码为此处编码格式不能改变,因为整个系统都是用这种格式:

<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
URIEncoding="UTF-8"
disableUploadTimeout="true" />

传参数页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.zzyy.web.util.RequestHelper"%>
<%@page import="com.zzyy.knowledge.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
// 获取目标视频文件名称
String seqid = RequestHelper.getNotNullString(request , "seqId");
//获取附件类型
KnowledgeShowDao temp = new KnowledgeShowDao();
String medianame = temp.att_MediaName(seqid);
String swfname="D:/UP/attachment/swf/"+medianame+".swf";
System.out.println("swfname值为:xxxxxxxxxssssssssssssxxxxxxx"+swfname);

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>文件展示</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>

<body >
<embed id="embedWelcom"
pluginspage="http://www.macromedia.com/go/getflashplayer"
menu="true" loop="true" play="true"
type="application/x-shockwave-flash" style="z-index: -1;"
wmode="transparent" src="servlet/FileStreamReader?name=<%=swfname%>"
width="800px" height="650px"
align="middle">
</embed>

</body>
</html>


servlet页面接受代码为:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

System.out.println("进入获取数据流页面" );


request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");//下面已经有了类型
String str_name = request.getParameter("name"); //获取存放地址名

System.out.println("进入获取数据流页面last" +str_name);
FileInputStream fis = new FileInputStream(str_name);
int i=fis.available(); //得到文件大小
byte data[]=new byte[i];
fis.read(data); //读数据
//读取图片的时候用下面
//response.setContentType("image/jpeg");
response.setContentType("swf");
OutputStream toClient=response.getOutputStream(); //得到向客户端输出二进制数据的对象
toClient.write(data); //输出数据

toClient.flush();
toClient.close();
fis.close();
//return null;
}

这个页面获取到的为乱码,各位大侠有没有解决办法??
...全文
199 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
完美灬缺陷 2012-02-27
  • 打赏
  • 举报
回复
什么都没改就可以了?
haoztao 2012-02-27
  • 打赏
  • 举报
回复
两位可以了,开始我也这么整过不中,现在一弄可以了。。。
MiceRice 2012-02-27
  • 打赏
  • 举报
回复
JSP中,先检查下这句话:
String swfname="D:/UP/attachment/swf/"+medianame+".swf";
用System.out.println(swfname)看看得到的名字是否为中文。

如果没问题,就增加紧接着一句话:
swfname = java.net.URLEncoder.encode(swfname);

游一游走一走 2012-02-27
  • 打赏
  • 举报
回复
wmode="transparent" src="servlet/FileStreamReader?name=<%=swfname%>"
请修改为如下试试
wmode="transparent" src="servlet/FileStreamReader?name=<%=URLEncoder.encode(swfname, "utf-8")%>"
内容概要:本文聚焦于高维多阶段随机规划问题,深入研究了正则化分解方法与马尔可夫过程在刻画不确定性动态演化中的应用,并提供了完整的Python代码实现。通过引入正则化技术有效降低了高维随机优化问题的计算复杂度,结合马尔可夫链建模多阶段决策过程中的不确定性传播机制,提升了模型在复杂动态环境下的求解效率与鲁棒性。研究涵盖了问题建模、算法设计、数值求解及结果分析全过程,具有较强的理论深度与工程实践价值; 适合人群:具备一定运筹学、优化理论基础及Python编程能力,从事智能决策、人工智能、能源系统优化、金融工程等相关领域的科研人员、高校研究生以及工业界研发工程师; 使用场景及目标:①应用于电力系统调度、供应链管理、金融资产配置等存在多阶段不确定性的复杂决策场景;②掌握高维随机规划的建模思路与高效求解技术,深入理解正则化方法与马尔可夫过程在实际优化算法中的融合机制与实现路径; 阅读建议:建议结合提供的Python代码进行动手实践,重点关注算法实现细节、参数敏感性分析与收敛性验证,鼓励在不同应用场景中迁移和改进该方法,进一步探索其在分布鲁棒优化、动态规划等前沿方向的扩展潜力。

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧