日期:2014-05-18  浏览次数:20731 次

中文编码问题
  问题描述:项目WebRoot下的down文件夹有展示的图片,其中图片名字有中文和英文如图:
我想在页面进行展示,点击的时候能够查看图片:
页面的代码如下:
  

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.net.URL"%>
<%@page import="java.io.File"%>
<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.net.URLEncoder"%>
<%@page import="java.net.URLDecoder"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%
 File file=new File(application.getRealPath("/down"));

 List<String> files=new ArrayList<String>();
 for(String s:file.list()){
 files.add(s);
 }
 pageContext.setAttribute("files",files);
%>
<p>文件列表</p>
<c:forEach var="filename" items="${files}">
   <script>
   var filename='${filename}';
   var str="<a href='<%=application.getContextPath()%>/down/"+filename+"'>"+filename+"</a>";
   document.write(str);
    </script>
</c:forEach>
</body>
</html>


展示的效果如下:

点击“1.jpg”出现如下图:

但是点击带中文的“日本妞.jpg”时候就会找不到,

求解决方法。

------解决方案--------------------
server.xml里面的Connector节点加个 URIEncoding="UTF-8" 属性,这样?