smartUpload上传为什么部分汉字乱码?

yu_xian 2008-04-29 01:24:11
上传后文字变成这样了:
�?3月份�?始,上海十余万公务员正经历着�?场力度空前的收入调整“风暴�?�:针对公务员津贴补贴名目繁多�?�发放秩序混乱的现状,上海市力争用三年时间,逐步消除地区和部门之间不合理的收入差距,�?终促成公务员津贴补贴发放与单位占有的国有�? 产和行政权力彻底脱钩。调整之下,有的“肥部门”减收不少,而有的�?�清水衙门�?�却相应增收�?


<%@ page language="java" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<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="相册">
<link rel="stylesheet" type="text/css" href="./css/all.css">
</head>

<body>
<table>
<tr><td colspan='2'><%@ include file="./top.jsp" %></td></tr>
<tr><td height='5' colspan='2'>
<tr><td valign='top' align='center' width='200'>

<jsp:include page="photoLeft.jsp"></jsp:include>
<td valign='top' align="left">
<div style="height:20"> </div>
<div align='left' style="border:1px solid #F0D995;">
<form action="servlet/AddPhoto" method="post" ENCTYPE="multipart/form-data">
<table cellpadding="8" cellspacing="8" class="f">
<tr><td>相片:
<td><input name='photo' type='file'><br>
<tr><td>名字:
<td><input type=text name='name' value=""><br>
<tr><td>描述:
<td><textarea id='content' name='content' cols='50' rows='10'></textarea>
<tr><td align='center' colspan="2"><input type='submit' value='添加' >
</table>
</form>
</div>
</td></tr></table>
</body>
</html>





package servlet;

import db.*;
import bean.*;
import com.jspsmart.upload.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
import javax.servlet.jsp.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


public class AddPhoto extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();

HttpSession session=request.getSession();
String accountId=(String)session.getAttribute("id");

String user,content,photo;
user=accountId;

JspFactory _jspxFactory = null;
PageContext pageContext = null;
_jspxFactory = JspFactory.getDefaultFactory();
pageContext = _jspxFactory.getPageContext(this, request, response,"", true, 8192, true);

SmartUpload su=new SmartUpload();
//PageContext pageContext=JspFactory.getDefaultFactory().getPageContext(this,request,response,null,true,8192,true);
su.initialize(pageContext);
// 设定上传限制
// 1.限制每个上传文件的最大长度。
su.setMaxFileSize(102400);
// 2.限制总上传数据的长度。
// su.setTotalMaxFileSize(20000);
// 3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。
su.setAllowedFilesList("png,gif,jpg,jpeg,bmp,svg,PNG,GIF,JPG,JPEG,BMP,SVG");
//4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件和没有扩展名的文件。
//su.setDeniedFilesList("exe,bat,jsp,htm,html");
// 上传文件
try{
su.upload();
photo=TextBean.trans(new String(su.getRequest().getParameter("name").getBytes(),"UTF-8"));
content=TextBean.trans(new String(su.getRequest().getParameter("content").getBytes(),"UTF-8"));
System.out.println(new String(su.getRequest().getParameter("content").getBytes(),"GBK"));


//根据时间产生文件名
String fileName=Name.getName();
//得到扩展名
String newImageName=fileName+"."+su.getFiles().getFile(0).getFileExt();
int fileNumber= su.getFiles().getCount();//获得上传文件数量
if(fileNumber>0){
com.jspsmart.upload.File file=su.getFiles().getFile(0);
if(!file.isMissing()) { // 若文件存在则继续
//保存上传文件到以WEB应用程序的根目录为文件根目录的目录下:
file.saveAs("/images/photo/"+newImageName,SmartUpload.SAVE_VIRTUAL);
}
}

boolean b=Image.add(newImageName);
System.out.println(user+" "+newImageName+" "+content+" ");
b=b&&Photo.add(user,photo,Image.readIdByPath(newImageName) ,content);
if(b){
out.print("<script language=\"JavaScript\">alert(\"相片保存成功!\");</script>");
out.print("<meta http-equiv=\'refresh\' content=\'0;URL=../photo.jsp?user="+user+"\'>");
}else{
out.print("<script language=\"JavaScript\">alert(\"相片保存失败!\");</script>");
out.print("<meta http-equiv=\'refresh\' content=\'0;URL=../addPhoto.jsp?user="+user+"\'>");
}

}catch(Exception e){
System.out.println("(用户:"+accountId+")相片上传出错!");
e.printStackTrace();
out.print("<script language=\"JavaScript\">alert(\"相片保存失败!\");</script>");
out.print("<meta http-equiv=\'refresh\' content=\'0;URL=../addPhoto.jsp?user="+user+"\'>");
}

}

}
...全文
456 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjt3377 2011-06-09
  • 打赏
  • 举报
回复
需要结果.乱码怎么办?
拼好了 2008-04-30
  • 打赏
  • 举报
回复

response.getOutputStream() 接分
拼好了 2008-04-30
  • 打赏
  • 举报
回复
PrintWriter print = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(newtp), "UTF-8")));


获取数据流的时候,不要直接response.getWriter(); 好像有一个newtp=response. getouptstream(); 这样就可以的,,不行.加个过虑哭肯定就行

拼好了 2008-04-30
  • 打赏
  • 举报
回复
这个问题能解决,很简单的
yu_xian 2008-04-30
  • 打赏
  • 举报
回复
难道没人会吗,在线急等啊!
yu_xian 2008-04-29
  • 打赏
  • 举报
回复
改成GBK也不行,有过滤request的,但是su.getRequest()里的没过滤,过滤器也是这样过滤,用过滤器不是更麻烦吗。
songfuqiang 2008-04-29
  • 打赏
  • 举报
回复
自己写个过滤器吧,把所有的请求进行编码就行了,你先在网上找找,如果不行叫我给代码.
jiaping108 2008-04-29
  • 打赏
  • 举报
回复
你把你的pageCoding和
photo=TextBean.trans(new String(su.getRequest().getParameter("name").getBytes(),"UTF-8"));
里面的编码格式UTF8都改成GBK试下
liang524 2008-04-29
  • 打赏
  • 举报
回复
fgdfdfgdfgdfgdffdgddfggfd
yu_xian 2008-04-29
  • 打赏
  • 举报
回复
刚开始那句是没有注释掉的,是部分乱码,个别字,还有换行的地方,也不一定是生僻的字。
Ghost_520 2008-04-29
  • 打赏
  • 举报
回复

处理请求乱码

request.setCharacterEncoding("UTF-8");
ylzbzx 2008-04-29
  • 打赏
  • 举报
回复
我也遇到这样的问题··等高人来解决··

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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