jsp中文路径问题
路径已经经过utf-8编码,但图片显示不了还是 src里都是经过utf-8编码后的%E5.....jpg
- Java code
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><!--<jsp:useBean id="smartupload" class="com.jspsmart.upload.SmartUpload"/>--> <%@page import="com.jspsmart.upload.SmartUpload"%> <%@page import="java.util.*,java.io.*,java.sql.*"%> <%@ page import="com.ucap.system.db.*"%> <%//request.setCharacterEncoding("UTF-8");String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'smartupload04.jsp' starting page</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <% // request.setCharacterEncoding("utf-8") ; //response.setContentType( smartupload.initialize(pageContext) ; // 初始化上传 smartupload.upload() ; // 准备上传 String name = smartupload.getRequest().getParameter("uname") ; System.out.println(smartupload.getRequest().getParameter("pic")); //name=new String(name.getBytes("gbk"),"utf-8"); //ISO-8859-1 //request.getParameter("uname"); // System.out.println("name:"+name); name = name + "." + smartupload.getFiles().getFile(0).getFileExt() ; System.out.println(name); System.out.println("getServletContext:"+this.getServletContext()); String fileName = this.getServletContext().getRealPath("/") + "upload/" + name ; System.out.println("fileName:"+fileName); smartupload.getFiles().getFile(0).saveAs(fileName) ; name = java.net.URLDecoder.decode(name,"utf-8"); %> <img src="upload/<%=name%>" width="300" height="200" /><%=name %> </body></html>
那个在tomcat\conf\server.xml里 加URLEncoder="utf-8",这个方法 确实可以解决,但这样很多页面里已经写好了的转码就得注释,太多了。
只能在当前页面想办法 求大大帮忙
[解决办法]
很多网站都是不让上传中文名称 的图片的,或者上传之后改成英文名称,建议楼主用这个,不要纠结中文路径的问题了。
tomcat又不是中国人写的是不是……
[解决办法]
页头加上
- HTML code
contentType="text/html; charset=UTF-8"
[解决办法]
瞅瞅,.....
一般我都用的是GBK