渣渣纠结了一下午的问题,男朋友看了两眼截图就给我解决了,哭死。。。。
记录一下。
两个jsp页面的跳转,需要传中文参数,但是出现了乱码。
在拼接url时,应该首先将中文字符串使用encodeURI编码一下,即encodeURI(fileName)。
不能将整个url编码,因为\\也会被编码。
我的目的是使用如下代码,进行pdf文件的展示
<object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="1000" height="700" border="0" top="-10" name="pdf">
<param name="toolbar" value="false">
<param name="_Version" value="65539">
<param name="_ExtentX" value="20108">
<param name="_ExtentY" value="10866">
<param name="_StockProps" value="0">
<param name="SRC" value="<%=url%>">
</object>
但是,如果在value里面写绝对路径无论中文英文都没有问题,但是写相对路径,中文就出现了问题。男朋友说,因为value里的本质上也是个url,所以,request取到中文的参数后,也应进行一次编码,代码如下
<%
String path=request.getParameter("path");
String viewPDFName=request.getParameter("viewPDFName");
viewPDFName = URLEncoder.encode(viewPDFName,"utf-8");
String url=path+"/"+viewPDFName+".pdf";
System.out.print(url);
%>
唉 渣渣去面壁了。。。。