- 浏览: 504785 次
- 性别:
- 来自: 沈阳
-
文章分类
- 全部博客 (437)
- Windows设置 (2)
- oracle数据库 (39)
- bug--jsp (4)
- j2se (13)
- js (40)
- bug-tomcat不能启动程序 (1)
- Hibernate (29)
- eclipse (20)
- java (65)
- 设计模式 (6)
- bug (18)
- PL/SQL (11)
- 前台 (5)
- 杂谈 (25)
- UML (1)
- jdbc编程 (2)
- 技术调研 (1)
- 数据通信 (2)
- ios (1)
- servlet自学笔记 (10)
- tomcat (9)
- SQL学习笔记 (6)
- java工具 (1)
- 数据库设计 (4)
- javascript (10)
- jsp (11)
- struts (17)
- ajax (7)
- linix/Unix (6)
- 资源 (3)
- spring (14)
- 算法 (5)
- 计算机网络 (2)
- http (5)
- c++ (2)
- web应用 (3)
- jvm (5)
- java中的字符编码 (14)
- java代码库 (2)
- classloader (1)
- 读书笔记 (1)
- c (1)
- 开源软件 (1)
- svn (1)
- AOP (1)
- java序列化 (1)
- 多线程 (4)
- The legendary programmers (1)
- Apache http Server (1)
- html tag (3)
- struts1.X学习笔记 (5)
- buffalo (1)
- 自己收藏 (0)
- TOEFL(IBT) (1)
- 网络翻墙 (0)
- 编译原理 (1)
- 书籍推荐 (1)
- css (10)
- javaee环境搭建资料 (1)
- 开源工具 (1)
- 美国生活 (1)
- spring自学 (3)
- log4j (3)
- 算法与数据结构 (5)
- 病毒,插件处理大全 (1)
- flex (2)
- webservice (1)
- git (7)
- cs (1)
- html (4)
- javaee (6)
- 开车 (0)
- springmvc (3)
- 互联网架构 (2)
- intellij idea (18)
- maven (15)
- mongodb (2)
- nginx (1)
- react (3)
- java基础例子 (2)
- springboot (2)
- 培训 (5)
- mysql (3)
- 数据库 (3)
- 生活 (2)
- intellij (3)
- linux (2)
- os (3)
最新评论
-
潇洒天涯:
[color=blue][color=cyan] ...
oracle 通过 nvl( )函数sql 查询时为 空值 赋默认值 -
hekai1990:
受教了..
oracle中的varchar2
TOMCAT中文问题解决了.其他应用服务器的问题也可以得到更好的理解,对于解决中文问题,和一些国际化的问题,会有更多的帮助...本文转载自CSDN (Tomcat中文问题解决一,二,三,四)
-------------------------------------------------------------------------------------------------------------------------------------------------------
原地址: http://www.csdn.net/develop/article/17/17204.shtm
http://www.csdn.net/develop/article/17/17222.shtm
http://www.csdn.net/develop/article/17/17223.shtm
http://www.csdn.net/develop/article/17/17225.shtm
http://www.csdn.net/develop/article/17/17233.shtm
Tomcat的中文处理(一)
看到很多朋友问关于中文的处理问题,下面我们以tomcat4.0为servlet,jsp引擎来说说unicode的处理。
1) 从客户端接受请求
当客户端请求tomcat的一个jsp文档的时候,tomcat会构造相应的httpServletRequest实现类的实例来代表客户端,通过对流servletInputStream读,我们可以得到客户端来的数据。
在jsp中我们通常使用的request.getParameter()来得到参数的值,这个函数的背后到底怎么样的呢?怎么样对String编码的呢?
通过tomcat的httpServletRequest实现类源代码考察:
public String getParameter(String name)
{
parseParameters();/////////处理parameters
String values[] = (String[])parameters.get(name);//得到该参数名字对应的Object(是一个数组)
if(values != null)
{
return values[0];
} else
{
return null;
}
}
其中parameters是request的一个map类型的数据成员,用来存放接受到的客户端的数据。也就是说每当客户端请求的时候,tomcat构造一个request实例,该实例有一个parameters用来存放从servlet实例的写入流的读来的客户端的数据。
从上面的代码知道最重要的的是parseParameters()函数,它是来处理parameters的。
下面来看看:
protected void parseParameters()
{
if(parsed)
{
return;///如果处理过了,就不要处理了
}
ParameterMap results = parameters;/////构造parameters对象的本地引用
if(results == null)
{
results = new ParameterMap();//////如果没有实例
}
results.setLocked(false);
String encoding = getCharacterEncoding();//////////////////////////得到httpServeltRequest的编码
if(encoding == null)
{
encoding = "ISO-8859-1";//////////如果没有指定httpServeltRequest的编码采用"ISO-8859-1"
}
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
RequestUtil.parseParameters(results, queryString, encoding);//////////////////////处理编码
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
is.read(buf, len, max - len); //////////////////////从流中读取数据
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
RequestUtil.parseParameters(results, buf, encoding);///////////////////////////////////处理编码
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
parameters = results;//////重置引用
}
下面再来看看RequestUtil.parseParameters(results, buf, encoding);/的处理:
在此就不贴源代码了,
RequestUtil.parseParameters(results, buf, encoding)的处理中对于buf byte数组进行处理,构造key和value,就是参数名字和参数值:
while(ix < data.length)
{
byte c = data[ix++];
switch((char)c)
{
case 38: // '&'
value = new String(data, 0, ox, encoding);
if(key != null)
{
putMapEntry(map, key, value);
key = null;
}
ox = 0;
break;
case 61: // '='
key = new String(data, 0, ox, encoding);
ox = 0;
break;
case 43: // '+'
data[ox++] = 32;
break;
case 37: // '%'
data[ox++] = (byte)((convertHexDigit(data[ix++]) << 4) + convertHexDigit(data[ix++]));
break;
default:
data[ox++] = c;
break;
}
}
if(key != null)
{
value = new String(data, 0, ox, encoding);
putMapEntry(map, key, value);
}
显然对于参数名字和参数的值都是采用的new String(data, 0, ox, encoding);方法来使用指定的编码方式构造的。
结论:我们不难看出如果没有指定request的编码方式,那么从客户端接受到的参数的名字和参数值都是以iso-8859-1编码的String的。
也就是说我们在jsp的页面中的表单元素中给出的参数值在通过request.getParamter()得到后的String是以iso-8859-1编码的。
而且我们看看tomcat为jsp产生的java文件知道,对于在jsp定义的没有指定编码方式的String的时候,tomcat是使用的iso-8859-1方式的,而不是系统默认的。response.setContentType("text/html ;charset=GB2312")加入http头,以什么方式读入文件。
比如:
<%
String name=new String(“你好”);或者String name=”你好”;/////都是使用的iso-8859-1的编码方式读取jsp源文件。
System.out.println(name);/////////////////就会产生乱码的(文件是gb2312保存的中文,编译时以gb2312字符读入虚拟机,转换成unicode程序)。JVM内部的String,Char都是用unicode存储(没有任何编码)。
%>
下篇我们介绍httpServletResponse的处理
Tomcat的中文處理(二):
上篇我们介绍了tomcat是怎么对接收到字符进行编码的,现在我们来看当向客户端写html文档的时候到底发生了什么?
tomcate在向客户端写出数据的時候,使用的是response的输出流來实现的。但是jsp是怎樣使用response的流的呢?
在使用JSP内含對象out輸出的時候,out是一個JspWriter实现类的对象实例,JspWriterImpl(ServletResponse response, int sz, boolean autoFlush)是一个该类的构造函数,其使用到了response,在JspWriterImpl内部还有一个java.io.Writer对象实例的引用,在使用JspWriter(JSP的out对象)写出数据的时候,会调用如下的函数来初始化
protected void initOut() throws IOException
{
if(out == null)
{
out = response.getWriter();/////////初始化 java.io.Writer對象
}
}来初始化该内部对象的。
然后在jspWriter的各个输出数据的函数的实现中就是調用上面的java.io.Writer對象的方法的。
所以不论是jsp或者是servlet,对客户端写出html的時候,都是通过response.getWriter();来得到的字符流或者由getOutputStream()得到2进制流的。
一個response存在一個字符流,也存在一個2進制流,但是在同一時刻只能打開使用一個流的。至於兩者的關係,我們在後面介紹。Jsp的out對象就是response的字符流的。
同樣的request也存在一個字符流和一個2進制流,但是在同一時刻只能打開使用一個流的。
response的两个流的关系
我们来考察response的实现类的getOutputStream()和getWriter函数的实现:
public ServletOutputStream getOutputStream() throws IOException
{
。。。。。。。。。。。。。。。。。。。。。
stream = createOutputStream();///创建response的2进制的输出流
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
return stream;
}
public PrintWriter getWriter() throws IOException
{
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
ResponseStream newStream = (ResponseStream)createOutputStream();////////创建2进制流
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
OutputStreamWriter osr = new OutputStreamWriter(newStream, getCharacterEncoding());
writer = new ResponseWriter(osr, newStream);///得到response的字符输出流
。。。。。。。。。。。。。。。。。。。。。。。。。。
}
}
显然,我们的字符流就是从2进制流转化而来的
还有两个函数要注意:
public String getCharacterEncoding()//////response的编码,默认是ISO-8859-1的
{
if(encoding == null)//////////////////////////////////如果没有指定编码
{
return "ISO-8859-1";
} else
{
return encoding;
}
}
public void setContentType(String type);设置response的类型和编码
{
。。。。。。。。。。。。。
encoding = RequestUtil.parseCharacterEncoding(type);////////得到指定的编码
if(encoding == null)
{
encoding = "ISO-8859-1";//////////////////////////如果沒有指定编码方式
}
} else
if(encoding != null)
{
contentType = type + ";charset=" + encoding;
}
}
好了,现在我们知道了在写出字符的时候使用的response的字符流(不管是jsp或者servlet),也就是使用的OutputStreamWriter osr = new OutputStreamWriter(newStream, getCharacterEncoding());
注意的是newStream是response的2进制流的实现。
所以我们还得看看OutputStreamWriter的实现:
考察OutputStreamWriter的源代碼,他有一個StreamEncoder 类型的对象,就是依靠他來转换编码的;
StreamEncoder是由sun公司提供的,它有一个
public static StreamEncoder forOutputStreamWriter(OutputStream outputstream, Object obj, String s)來得到StreamEncoder对象实例。
对于jsp,servlet来说在构造他的时候 outputstream参数是response的2进制流,obj是OutputStreamWriter对象,s就是编码方式的名字。其实得到是一個StreamEncoder的子类的对象实例,
return new CharsetSE(outputstream, obj, Charset.forName(s1)); CharsetSE是StreamEncoder的子类。
他有一个如下的函数来实现编码转换的:
void implWrite(char ac[], int i, int j)throws IOException /////// ac是要輸出String的char數組
{
CharBuffer charbuffer = CharBuffer.wrap(ac, i, j);
。。。。。。。。。。。。。。。。。。。。。。。
CoderResult coderresult = encoder.encode(charbuffer, bb, false);/////bb是ByteBuffer,存放编码后的byte缓冲区
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
writeBytes();///////////////////////////////將bb转化到byte数组写入到response的2进制流中
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
}
至此,我们了解了tomcat背后的编码转换过程
Tomcat的中文處理(三):
前面废话讲过了,现在我们来分析几个例子:
1)jsp中如果使用了:
<%@ page contentType="text/html; charset=Shift_JIS" %>
他其实就是指定了response的类型和编译jsp时字符的编码方式,上面指定了response的字符编码是是Shift_JIS。
charset是指定jvm以什么编码方式读入这个jsp文件,而不管jsp文件的保存类型。如果不一致,则转换上需要详细分析。
注意的是如果沒有指定requset的编码,那么从request得到的String都是iso-8859-1编码的。(上一篇已经讲过了。),他和charset是没有关系的。
如果要输出的String的编码和response的编码不一样的话,就很可能出现乱码的情況。
举个例子:
<%@ page contentType="text/html; charset=GB2312" %>///////////////指定response的编码为中文简体,那么所有的要输出的字符都要使用和GB2312相适应的编码
<html>
<head><title></title>
</head>
<body>
<%
String name=request.getParameter("name");////////得到客户端的參數值,沒有指定request的编码,所以它是编码为iso-8859-1的String的。以iso-8859-1编码读入GB2312的文件不做码的转换。读到jvm的时候做到unicode的转换。
String name1=new String(name.getBytes("ISO-8859-1"),"GB2312");//////////转化为中文简体的编码
String name2="你好";/////直接定義String,使用reponse的编码,这里是GB2312的"你好"->unicode的“你好”。
String name21=new String(name2.getBytes("ISO-8859-1")," GB2312");////////从name2转化
System.out.println("name1 is GB2312"+name1);
System.out.println("name is ISO-8859-1"+name);
System.out.println("name21 is 直接"+name21);
System.out.println("我们大家");
%>
<form action="./B.jsp" method="POST">
<input type="text" name="name" value="<%=name1%>">
<input type="submit">
</form>
<hr>
name1 is GB2312 <%=name1%><br>
name is ISO-8859-1 <%=name%><br>
name21 is 直接<%=name21%><br>
<%="我们大家"%></body>
</html>
結果:
console中:(他对应response的编码是GB2312的,日文系統是MS932)
name1 is GB2312 你好//////////name1是name转化来的,是GB2312的,所以正常顯示
name is ISO-8859-1????/////////////name是ISO-8859-1的不能正常顯示的
name21 is 直接???????????????????////////////////由於name2是GB2312編碼的,在name21 =new String(name2.getBytes("GB2312"),"MS932"))發生了錯誤的轉化,所以不能正常的現實,如果將ISO-8859-1換為GB2312就可以了。
我们大家//////////////////////////////////jsp中定義的string是採用<%@ page contentType="text/html; charset= GB2312" %>指定的編碼,如果沒有指定,就使用iso-8859-1的。
可以看到我們在ie中看到的結果是一樣的。
下面我們將<%@ page contentType="text/html; charset=Shift_JIS" %>去掉。
結果:
console (这个时候,Console的編碼是GB2312,所以编码为GB2312的字符能显示,由于在jsp中构造的String此時使用的iso-8859-1,所以不能显示)
name1 is GB2312你好
name is ISO-8859-1????
name21 is ???? 你好/////////////////name2的编码此时为iso-8859-1,所以转化来的name21是正确的
????????
ie (这个时候,response的编码是iso-8859-1,所以编码为iso-8859-1的能显示,由于在jsp中构造的String此時使用的iso-8859-1,所以也能显示)
name1 is GB2312??
name is ISO-8859-1 你好
name21 is 直接 ???????????????????
我们大家
顯然不一樣了結果!!!!
Tomcat的中文處理(四):
2)在servlet和其他java文件中的字符
在这种情況下,构造的String使用的系統默认的编码方式的。
但是在servlet中从request得到的字符,如果沒有指定request的編碼,那么就是得到的一个编码方式为iso-8859-1的字符,在servlet中,如果沒有指定response的编码方式(通过setContentType),那么,response使用的iso-8859-1的编码方式。
例子:
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldExample extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
String name=request.getParameter("name");/////得到name參數的value
response.setContentType("text/html ");///不設置編碼,此時response使用iso-8859-1的編碼
PrintWriter out = response.getWriter();//得到字符流,此時的編碼為iso-8859-1
out.println("<html>");
out.println("<head>");
String title="你好";/////构造一个String,注意的是虽然此時没有为response指定编码,但是在servlet中构造的String使用的系统默认的编码的。
out.println("<title>sdsfdsfsdfds</title>");
out.println("</head>");
out.println("<body bgcolor=/"white/">");
out.println("我们大家<br>");///////输出一个编码为本地默认的String到response中,但是此时response的编码是iso-8859-1的,所以出现乱码得
out.println("title is "+title);////title是系统默认的编码,得到乱码
out.println("<br>name is "+name);/////name是request的來的,正确显示
out.println("</body>");
out.println("</html>");
System.out.println("你好");////由于Console是系統默認編碼,所以正確顯示
System.out.println("title is "+title);/////title是默認編碼的,正常顯示 System.out.println("name is "+name);///////name是iso-8859-1的編碼的,亂碼 } } 如果我們在response.setContentType("text/html ");改為:response.setContentType("text/html ;charset=GB2312");那么,IE的输出和Console的输出是一样的。 总结: 1. 在jsp中<%@ page contentType="text/html; charset=A" %>如果指定了,那么在改jsp中所有构造的String(不是引用),如果沒有指定编码,那么这些String的编码是A的。 从request的得到的String如果沒有指定request的编码的话,他是iso-8859-1的 从别的地方得到的String是使用原來初始的编码的,比如从数据库得到String,如果数据库的编码是B,那么该String的编码是B而不是A的,也不是系统默认的。 此时,如果要输出的String的编码不是A,那么,很可能显示乱码的,所以首先要将String正確转化为编码A的String,然后输出。 2. 在jsp中<%@ page contentType="text/html; charset=A" %>沒有指定,那么相当于指定了<%@ page contentType="text/html; charset=ISO-8859-1" %> 3. Servelte中如果执行了像 response.setContentType("text/html;charset=A");説明将response的字符输出流编码设置为A,所有要输出的String的编码要转化为A的,否則会得到乱码的。 Servelet中从request得到的String的编码和jsp中一样的,但是在servlet java文件中构造的String是使用的系统默认的编码的。在servelt中从外部得到的String 是使用原来的编码的,比如从编码为B的数据库得到的数据是编码为B的,不是A,也不是系统默认的编码。 后语: 虽然我们使用的tomcat来作说明,其他的jsp,servlet引擎其实现的方法也差不多! 使用filter来改变request的编码 在前面的文章里面,我们讨论了在tomcat下的jsp和servlet的字符编码问题! 知道当没有指定request的编码的时候,从客户端得到的数据是iso-8859-1编码的(request.getParameter()得到传递的参数值); 但是我们怎么来改变request的编码呢? 方法有很多种! 比如:在getRequestDispatcher("/jsp/jsptoserv/hello.jsp").forward(request, response);之前修改 request的编码,那么在jsp/jsptoserv/hello.jsp中得到的参数值就是制定的编码的字符。 本文我们使用Filter来修改request的编码! 1)首先编写filter类: package myFilter; public class ChangeCharsetFilter implements Filter { public void destroy() { this.encoding = null; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) if (request.getCharacterEncoding() == null){ chain.doFilter(request, response);///有机会执行下一个filter } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; return (this.encoding);///得到指定的编码 } <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app <web-app> <filter> </web-app> 3。 写一个a.jsp <%@ page contentType="text/html; charset=GB2312" %> 在Console中输出的,但是现在改变了request的编码方式,此时的name的编码是GB2312,所以能正确在Console中显示的。 %> 完! 关于中文处理的问题就写这些了!
import java.io.IOException;
import javax.servlet.*;
protected String encoding = null;/////要制定的编码,在web.xml中配置
protected FilterConfig filterConfig = null;
this.filterConfig = null;
throws IOException, ServletException {
String encoding = getEncoding();////得到指定的编码名字
if (encoding != null)
request.setCharacterEncoding(encoding);////设置request的编码
}
this.encoding = filterConfig.getInitParameter("encoding");///得到在web.xml中配置的编码
}
protected String getEncoding() {
}
2。编辑web.xml文件
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>myFilter.ChangeCharsetFilter </filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>//////指定编码为GB2312
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>////////对于所有的request改变其编码
</filter-mapping>
///
<html>
<head></head>
<body>
<%
String name=request.getParameter("name");///本来这里得到字符是iso-8859-1编码的,不能直接
System.out.println(name);
<form action="a.jsp" method="post">
<input type="text" name="name">
<input type="submit">
</form>
<%=name%>
</body>
</html>
发表评论
-
【转】字符编码笔记:ASCII,Unicode 和 UTF-8
2017-12-12 19:09 453今天中午,我突然想搞清楚 Unicode 和 UTF-8 之 ... -
tomcat项目没部署webapps下,如何找
2017-04-19 10:34 864webapps下面没有项目部署文件。 打开server. ... -
[转]Tomcat7使应用成为根路径应用,并绑定多个域名
2016-02-23 21:00 343http://blog.sina.com.cn/s/blo ... -
【转】HTTP协议及浏览器编码行为
2012-12-19 13:48 1396转自:http://blog.csdn.net/hap ... -
【转】JSP中request.getParameter()乱码问题
2012-09-11 14:12 3126第一,存文件必须以一种编码存;读文件也必须以一种编码读,如不特 ... -
【转】说说字符集和编码
2012-09-10 22:41 786很久很久以前,有一 ... -
【转】解决get方法传递URL参数中文乱码问题
2012-08-27 22:18 0来自:http://www.javaeye.com/top ... -
判断一个文本文件的编码格式
2012-08-27 17:40 0文件的字符集在Windows下有两种,一种是ANSI,一 ... -
【转】为什么用记事本保存的UTF-8格式的java文件不能编译通过?
2012-08-27 17:26 0Windows记事本默认保存的ANSI格式,java编 ... -
Eclipse中的Text File Encoding与文本文件的编码的关系
2012-08-27 17:25 1489当我们编写一个txt文件或jsp页面时,我们用默认的一种编码区 ... -
【转】有关保存文件时的编码选项与html/jsp页面设定字符编码的配置
2012-08-27 16:10 761分两种情况介绍 注:首先,各位得对一次 请求/响应 的 ... -
【转】内码转换技术
2012-08-27 16:04 0内码转换技术 好吧 ... -
【转】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础
2012-08-27 13:25 957这两天抽时间又总结/整理了一下各种编码的实际编码方式, ... -
【转】又一篇介绍计算机字符编码的好文——计算机中的字是如何处理的?
2012-08-26 21:50 0如果你用放大镜看一下,可以看出屏幕上的字是由一个一个的像素点组 ... -
【转】利用javascript完成URLEncoding功能
2012-08-27 11:25 749日常开发中,经常遇到由于页面不一致,导致由页面表单提交或超连接 ... -
【转】Java编码规范,在您进行编码之前应该阅读的规范
2012-08-27 11:25 824本文转载于:http://www.web3d.com. ... -
【转】第三篇:JAVA字符编码系列三:Java应用中的编码问题
2012-08-26 21:42 808这部分采用重用机制,引用一篇文章来完整本部分目标。 来源 ... -
【转】第二篇:JAVA字符编码系列二:Unicode,ISO-8859-1,GBK,UTF-8编码
2012-08-26 21:17 9531、函数介绍 在Java中,字符串用统一的Unico ... -
【转】java 与 iso-8859-1 编码
2012-08-26 21:16 1551今天又研究了一下字符编码。写了些测试代码,算是比较了解了。 主 ... -
【转】form表单提交数据编码方式及tomcat的接受编码方式
2012-08-26 21:15 1585form有2中方法把数据提交给服务器,get和post,分别说 ...
相关推荐
Tomcat 8.5.x版本升级变化 By jmatrix_ds | Published 2017 年 1 月 9 日 1. 其中一些重要变化(对HTTP2,SSL支持的改动较多) <1> 不再提供对HTTP BIO,AJP BIO的支持; <2> 重构HTTP upgrade与AJP实现,减少重复;...
2009-03-20 16:37 254350 86752 常见的专业问题解决办法\解决Struts中ApplicationResources_properties文件不支持中文问题_微科工作室 QQ:28790953____.mht 2009-02-25 08:45 文件夹 文件夹 常见的专业问题解决办法...
经过呕心沥血的一天一夜,终于搞定SmartUpload组件的所有中文问题,为大家去除有史以来最头痛的中文问题,包括中文参数,中文文件名上传后服务器端文件名乱码问题,以及中文文件名下载问题。 这是我的中文解决终极...
这些问题的解决方案可以在Tomcat官方文档中找到,或者通过搜索引擎查询。 最后,为了方便使用Tomcat,建议配置环境变量。环境变量的配置包括新建一个名为“CATALINA_HOME”的环境变量,其值为Tomcat的安装路径...
全书一共被压缩为5个rar,这是第二个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...
全书一共被压缩为5个rar,这是第五个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...
全书一共被压缩为5个rar,这是第四个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...
全书一共被压缩为5个rar,这是第三个!...21.2 中文乱码问题的解决方案 614 21.3 使用过滤器解决中文问题 616 21.4 让tomcat支持中文文件名 620 21.5 国际化与本地化 621 21.5.1 locale 621.. 21.5.2 资源包 623 ...