参考网址:
http://blackwoodkane.spaces.live.com/Blog/cns!6279FA186F838628!649.entry
http://www.javaworld.com.tw/jute/post/view?bid=9&id=44042&sty=1&tpg=1&age=0
首先要需要了解的是web容器默认编码是iso-8859-1,一个汉字占用两个字节,而在utf-8中一个汉字占用三个字节。所以在数据传递过程中,必须手动设定容器编码格式,否则会出现字符位丢失的情况。即3个字节变为两个字节,自然会变成乱码。
第一步,修改tomcat。
找到对应站点的server.xml后,在里面的Connector标签里面添加
useBodyEncodingForURI="true"
这句的话告诉tomcat用页面的编码去处理post
在JSP页面加上这两句
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
例子:
DirRead.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.net.*,java.io.*" %>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<%
//依您電腦,請修改目錄
File fp = new File("C:\\");
File[] f2 = fp.listFiles();
%>
<form method="post">
<table border="01" cellpadding="2" cellspacing="0">
<% //for( int i=0 ; i<file_list.length ; i++ ){
for( int i=0 ; i<f2.length ; i++ ){
%>
<tr>
<td><%=f2[i].getName() %></td>
<td><a href="DirShow.jsp?filename=<%= java.net.URLEncoder.encode(f2[i].getName(),"UTF-8") %>">link</a></td>
</tr>
<% } %>
</table>
</form>
</BODY>
</HTML>
DirShow.jsp
<%@page contentType="text/html; charset=UTF-8" %>
<%@page import="java.util.*" %>
<%@page import="java.io.*" %>
<%
request.setCharacterEncoding("UTF-8");
String filename = request.getParameter("filename");
out.println("選取檔案: " + filename);
%>
分享到:
相关推荐
将cmd编码格式永久改为utf-8,解决部署以后tomcat乱码问题
tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-redis-session-manager-1.2-tomcat-7-java-7tomcat-...
开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-windows-x86开发工具 apache-tomcat-8.0.41-...
liferay-portal-tomcat-5.5-5.1.1.part4.rar
liferay-portal-tomcat-5.5-5.1.1.part1.rar
liferay-portal-tomcat-5.5-5.1.1.part2.rar
liferay-portal-tomcat-5.5-5.1.1.part3.rar
一般我们所装的linux服务器,是中文版的,所以系统环境的编码是gbk,然而我们项目的编码是UTF-8,这就必须在tomcat的server.xml文件中修改,在两个地方添加 URIEncoding="UTF-8",具体代码如下:
Tomcat8亲测可用 tomcat-redis-session-manager的jar包 修改了tomcat-redis-session-manager源码进行的编译生成的jar包
tomcat的administrator的配置管理文件,按照压缩路径解压缩至tomcat的安装路径。(适用于tomcat5.5的windows installer版本)
所需的tomcat-redis-session-manager所有的jar包下载。测试环境JDK1.8,Tomact8
文件名写错了,此压缩文件支持tomcat8.5。是否支持8.0请自行测试,本人只测试了8.5,可以使用。压缩文件包括tomcat-redis-session-manager-...apache-tomcat-8.5.33.tar.gz,nginx-1.6.2.tar.gz也打包进去,一步到位。
解决Invalid byte 1 of 1-byte UTF-8 sequence
apache-tomcat-6.0.53-src,apache tomcat 6.0.53的源码。 压缩包文件清单: apache-tomcat-6.0.53-src.tar.gz apache-tomcat-6.0.53-src.tar.gz.asc apache-tomcat-6.0.53-src.tar.gz.md5 apache-tomcat-6.0.53-...
tomcat7配置log4j解决catalina.out日志过大问题,tomcat-juli.jar,tomcat-juli-adapters.jar解决tomcat日志cataline.out过大问题
tomcat5.5中文手册tomcat5.5中文手册tomcat5.5中文手册tomcat5.5中文手册tomcat5.5中文手册tomcat5.5中文手册tomcat5.5中文手册tomcat5.5中文手册tomcat5.5中文手册tomcat5.5中文手册tomcat5.5中文手册tomcat5.5中文...
用于配置 tomcat-redis-session-manager
使用tomcat-redis-session-manager进行统一session管理所需jar包,包括tomcat6-jdk6、tomcat7-jdk7、tomcat8-jdk8
tomcat-redis-session-manager-2.0.0.jar