欢迎来到天天文库
浏览记录
ID:16974860
大小:18.50 KB
页数:3页
时间:2018-08-26
《彻底解决jsp中用smartupload上传附件中文乱码问题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、彻底解决jsp中用SmartUpload上传附件中文乱码问题 最近开发一个基于J2EE平台的DRP项目,其中需要上传下载大量的附件。项目中所使用的数据库为Oracle8I,操作系统和Web应用服务程序为:①开发环境Win2000/Tomcat、②开发测试环境Win2000/WebSphere6.0,③正式环境Unix/WebSphere6.0,④正式环境的备用服务器Linux/WebSphere6.0。在开发上传附件中出现了一个很普通很麻烦的问题,就是中文名称乱码问题,根据网上查询的资料,很快解决了①②③环境下的乱码,但④环境下依然是
2、乱码。最后,经过持续一个多月的研究实验,终于找到一种同时满足①②③④种环境的解决办法。 基本原理是:(1)、在上传之前,先对要上传的文件名进行编码; (2)、对编码后的文件名解码后,再插入数据库中。 基本实现如下面的代码片段, 上传代码: ...... 3、ick="doFileUpLoad();"> ...... JSP代码: ....4、.. //获取上传的文件名,并用自编的unescape函数解码 table_name1=locatedintheTomb,DongShenJiabang,deferthenextdayfocusedontheassassination.Linping,Zhejiang,1ofwhichliquorwinemasters(WuzhensaidinformationisCarpenter),whogotAfewbayonets,duetomissedfatal,whennightcameCUtil.unescape(mySmartU5、pLoad.getRequest().getParameter("table_name1").toString()); //分离目录信息,在数据库中只存储文件名 table_name1=CUtil.extractFileName(table_name1); ...... unescpe函数代码: publicstaticStringunescape(Stringsrc){ StringBuffertmp=newStringBuffer(); tmp.ensureCapacity(src.lengt6、h()); intlastPos=0,pos=0,nLen=src.length(); charch; while(lastPos7、h); lastPos=pos+6; }else{ ch=(char)Integer.parseInt(src.substring(pos+1,pos+3),16); tmp.append(ch); lastPos=pos+3; } }else{ if(pos==-1){ tmp.append(src.substring(lastPos)); lastPos=nLen; }else{8、 tmp.append(src.substring(lastPos,pos)); lastPos=pos; } } } returnlocat
3、ick="doFileUpLoad();"> ...... JSP代码: ....
4、.. //获取上传的文件名,并用自编的unescape函数解码 table_name1=locatedintheTomb,DongShenJiabang,deferthenextdayfocusedontheassassination.Linping,Zhejiang,1ofwhichliquorwinemasters(WuzhensaidinformationisCarpenter),whogotAfewbayonets,duetomissedfatal,whennightcameCUtil.unescape(mySmartU
5、pLoad.getRequest().getParameter("table_name1").toString()); //分离目录信息,在数据库中只存储文件名 table_name1=CUtil.extractFileName(table_name1); ...... unescpe函数代码: publicstaticStringunescape(Stringsrc){ StringBuffertmp=newStringBuffer(); tmp.ensureCapacity(src.lengt
6、h()); intlastPos=0,pos=0,nLen=src.length(); charch; while(lastPos7、h); lastPos=pos+6; }else{ ch=(char)Integer.parseInt(src.substring(pos+1,pos+3),16); tmp.append(ch); lastPos=pos+3; } }else{ if(pos==-1){ tmp.append(src.substring(lastPos)); lastPos=nLen; }else{8、 tmp.append(src.substring(lastPos,pos)); lastPos=pos; } } } returnlocat
7、h); lastPos=pos+6; }else{ ch=(char)Integer.parseInt(src.substring(pos+1,pos+3),16); tmp.append(ch); lastPos=pos+3; } }else{ if(pos==-1){ tmp.append(src.substring(lastPos)); lastPos=nLen; }else{
8、 tmp.append(src.substring(lastPos,pos)); lastPos=pos; } } } returnlocat
此文档下载收益归作者所有