请问怎么在tomcat下显示静态中文页面(htm文件) 帮你顶啊,我也一样遇到了,TMD的个破TOMCAT自动在HTTP响应流的头文件里加了ISO-8859-1的编码方式,一到IE就按ISO编码了,一直找不到哪儿改 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <%@ page contentType="text/html; charset=GBK" %> <HEAD> <META content="text/html; charset=gb2312" http-equiv=Content-Type>...</HEAD> 像 zjpangxie(胡了) 所说那样 请看 关于Tomcat5中文路径和中文文件名问题的一点研究 http://expert.csdn.net/Expert/topic/2906/2906169.xml?temp=.9539759问题的提出: 在Tomcat5中存在中文路径的问题,如: < IMG SRC="中文图片.jpg" WIDTH="77" HEIGHT="80" BORDER=0 ALT="" >或 < a href="中文.jsp">中文文件名< / a>或 http://127.0.0.1:8080/中文.jsp 通常在以上三种情况下,Tomcat5服务器会报告找不到文件的错误。经过这几天对Tomcat5文档的研究,主要是下面这份:http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/http.html终于初步搞清了Tomcat5中的中文路径问题,探其原因主要是编码的问题,因为Tomcat5的http Connector所用的URI解码默认用的是 ISO-8859-1,而一般浏览器默认用的发送编码为UTF-8,这样问题就出现了,初步的解决方法如下: 在server.xml中类似如下配置: < Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" / > 其中关键是 URIEncoding="UTF-8" 这项,其含义是指定URI的编码为:UTF-8这样配置后重启Tomcat,基本能解决前面提到的中文路径和中文文件名问题。 加上 charset=gb2312" 应该就没问题了 !点IE-->查看-->编码,选择gb2312,呵呵,只能解决临时问题,向楼上的学习!UP! Tomcat 服务器下 JSP 页面中文问题及解决方法总结 目前, Tomcat 作为一种出色的开放源代码的 JSP 服务器,目前在 JSP 的开发过程中获得了广泛的应用. 但是作为一款英语国家公司开发的软件, 在中文环境下不可避免的会出现一些乱码问题. 这里就 Tomcat 4.0 和 Tomcat 4.1 下的常见中文问题及其解决方法做一个总结. 这些方法都已经在 中文版 Windows 98 + JDK 1.3.1 和 中文版 Windows 2000 + JDK 1.3.1 下通过了测试. 另外在 IBM 的网站上有一个网页 http://www-900.ibm.com/developerWorks/cn/java/jsp_dbcsz/index.shtml 也讨论了这个问题. 首先为了便于讨论, 这里首先列出了一些方便的工具方法, 便于我们的讨论. 这些方法如下所示:// 转换由表单读取的数据的内码到 GB2312public String toChi(String input) {try {byte[] bytes = input.getBytes("ISO8859-1");return new String(bytes);}catch(Exception ex) {}return null;}// 对给定字符进行 URL 编码public String encode(String value) {if(isEmpty(value)) return "";return java.net.URLEncoder.encode(value);}// 对给定字符进行 URL 解码public String decode(String value) {if(isEmpty(value)) return "";return java.net.URLDecoder.decode(value);}. 问题1. 浏览器中看到的 JSP 页面中的汉字怎么都成了 '?' ?可能原因如下: 您的页面中没有指定页面的字符集为中文. 解决方法(适用于Tomcat 4.0 和 Tomcat 4.1)是在页面中添加如下代码:<%@ page contentType="text/html;charset=gb2312" %><meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 问题2. 通过 POST 方法提交的表单的汉字都显示为乱码(在 Tomcat 4.0 下正常, Tomcat 4.1 下出现).可能原因如下: POST 提交的字符串都是 ISO8859-1 编码的, 只要把它的字符集转换到中文就行了. 解决方法如下(适用于 Tomcat 4.1):// 单个的参数String result = toChi(request.getParameter("parameterName"));// 多个参数String values[] = request.getParametervalues(name);if(values != null) {for(int i = 0; i < values.length; i++) {values[i] = toChi(values[i]);}} 问题3. 通过 GET 方法提交的表单的汉字都显示为乱码(在 Tomcat 4.0 和 Tomcat 4.1 下都出现).可能原因如下: GET 提交的字符串都是 ISO8859-1 编码的, 只要把它的字符集转换到中文就行了. 解决方法如下(适用于 Tomcat 4.1, Tomcat 4.0 下不能用于 page.jsp?username=中文):// 单个的参数String result = toChi(request.getParameter("parameterName"));// 多个参数String values[] = request.getParametervalues(name);if(values != null) {for(int i = 0; i < values.length; i++) {values[i] = toChi(values[i]);}} 问题4. Cookie 中不能写入汉字或者汉字无法正确显示.可能原因如下: Tomcat 4.0 下自动把 Cookie 做了编码为 ISO8859-1 的存储, 而 Tomcat 4.1 下的 JSP 引擎不支持包含含有汉字的 Cookie.Tomcat 4.0 下的解决方法:// 根据 Cookie 名称得到请求中的 Cookie 值, 如果 Cookie 值是 null, 则返回 ""public String getCookievalue(HttpServletRequest request, String name) {Cookie[] cookies = request.getCookies();if(cookies == null) return "";for(int i = 0; i < cookies.length; i++) {Cookie cookie = cookies[i];if(cookie.getName().equals(name)) {// 需要对 Cookie 中的汉字进行 URL 反编码, 适用版本: Tomcat 4.0return decode(cookie.getvalue());}}// A cookie might not return a null value, may return a ""return "";}Tomcat 4.1 下的解决方法:// 写入包含汉字 Cookie 的方法response.addCookie(new Cookie("cookieName", encode("汉字")));// 得到 Cookie 值的方法(同 Tomcat 4.0 的解决方法)public String getCookievalue(HttpServletRequest request, String name) {Cookie[] cookies = request.getCookies();if(cookies == null) return "";for(int i = 0; i < cookies.length; i++) {Cookie cookie = cookies[i];if(cookie.getName().equals(name)) {// 需要对 Cookie 中的汉字进行 URL 反编码, 适用版本: Tomcat 4.0return decode(cookie.getvalue());}}// A cookie might not return a null value, may return a ""return "";} 问题5. 在 Tomcat 4.0 下 GET 请求(如: page.jsp?username=中文) 无法返回原来的值.原因: 与 Tomcat 引擎有关, 不论是否转换内码, 均无法返回原来的值, 但是有一个替代方法, 如下:将 URL 地址改变为 "page.jsp?username=" + encode("中文")然后使用下列代码取回参数:// 单个的参数String result = toChi(request.getParameter("parameterName")); 问题6. JavaBean 里使用 <jsp:setProperty id="propName" property="*" /> 出现中文问题.暂时未提供解决方案. 看一下,应该有帮助。 <%@ page contentType="text/html; charset=gb2312" %>在你的文件第一行加上上面这一句,再试试 <%@ page contentType="text/html; charset=gb2312" %> 不行,我加了,应该 改 哪个文件 ,我 没 找到??? 谢谢几位的帮助,楼主都不知去那儿了!楼主的意思是静态页面,就是HTML页面的问题据说IE优先按照HTTP响应的头部的解码属性来解码,tomcat在响应HTML请求的时候在响应的头部自动添加了ISO-8859-1的解码方式,即使是在HTML页面里指明编码方式也无济于事的这是我做过程序打印出响应的头部的字符信息的 html中表格布局时如何背景图片的大小随表格的大小变化而变化? java实现文件下载的问题,急! 我使用C:\Windows\SysWOW64\odbcad32.exe的odbc时出现了错误,求大神帮忙 jsp 与 discuz x2.5整合 JSP 接收 FORM 提交 jmeter测试查询老是出错,麻烦各位帮忙看看(付源码) div 光标指定内容移动 滚动条也要随着移动 所有学java和jsp的朋友进来看看谁能解决这个问题 数据库连接问题,麻烦 提一个jbuilder里面开发jsp的问题 Junit可以运行它的sample,怎样执行自己的测试? 急待解决的两个怪问题
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
...
</HEAD>
请看
关于Tomcat5中文路径和中文文件名问题的一点研究
http://expert.csdn.net/Expert/topic/2906/2906169.xml?temp=.9539759问题的提出:
在Tomcat5中存在中文路径的问题,如:
< IMG SRC="中文图片.jpg" WIDTH="77" HEIGHT="80" BORDER=0 ALT="" >
或 < a href="中文.jsp">中文文件名< / a>
或 http://127.0.0.1:8080/中文.jsp
通常在以上三种情况下,Tomcat5服务器会报告找不到文件的错误。
经过这几天对Tomcat5文档的研究,主要是下面这份:
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/http.html
终于初步搞清了Tomcat5中的中文路径问题,
探其原因主要是编码的问题,
因为Tomcat5的http Connector所用的URI解码默认用的是 ISO-8859-1,
而一般浏览器默认用的发送编码为UTF-8,这样问题就出现了,
初步的解决方法如下:
在server.xml中类似如下配置:
< Connector port="8080" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8" / >
其中关键是 URIEncoding="UTF-8" 这项,其含义是指定URI的编码为:UTF-8
这样配置后重启Tomcat,基本能解决前面提到的中文路径和中文文件名问题。
目前, Tomcat 作为一种出色的开放源代码的 JSP 服务器,目前在 JSP 的开发过程中获得了广泛的应用. 但是作为一款英语国家公司开发的软件, 在中文环境下不可避免的会出现一些乱码问题. 这里就 Tomcat 4.0 和 Tomcat 4.1 下的常见中文问题及其解决方法做一个总结. 这些方法都已经在 中文版 Windows 98 + JDK 1.3.1 和 中文版 Windows 2000 + JDK 1.3.1 下通过了测试. 另外在 IBM 的网站上有一个网页 http://www-900.ibm.com/developerWorks/cn/java/jsp_dbcsz/index.shtml 也讨论了这个问题.
首先为了便于讨论, 这里首先列出了一些方便的工具方法, 便于我们的讨论. 这些方法如下所示:// 转换由表单读取的数据的内码到 GB2312
public String toChi(String input) {
try {
byte[] bytes = input.getBytes("ISO8859-1");
return new String(bytes);
}catch(Exception ex) {
}
return null;
}// 对给定字符进行 URL 编码
public String encode(String value) {
if(isEmpty(value)) return "";
return java.net.URLEncoder.encode(value);
}// 对给定字符进行 URL 解码
public String decode(String value) {
if(isEmpty(value)) return "";
return java.net.URLDecoder.decode(value);
}.
问题1. 浏览器中看到的 JSP 页面中的汉字怎么都成了 '?' ?
可能原因如下: 您的页面中没有指定页面的字符集为中文. 解决方法(适用于Tomcat 4.0 和 Tomcat 4.1)是在页面中添加如下代码:
<%@ page contentType="text/html;charset=gb2312" %>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 问题2. 通过 POST 方法提交的表单的汉字都显示为乱码(在 Tomcat 4.0 下正常, Tomcat 4.1 下出现).
可能原因如下: POST 提交的字符串都是 ISO8859-1 编码的, 只要把它的字符集转换到中文就行了. 解决方法如下(适用于 Tomcat 4.1):
// 单个的参数
String result = toChi(request.getParameter("parameterName"));
// 多个参数
String values[] = request.getParametervalues(name);
if(values != null) {
for(int i = 0; i < values.length; i++) {
values[i] = toChi(values[i]);
}
} 问题3. 通过 GET 方法提交的表单的汉字都显示为乱码(在 Tomcat 4.0 和 Tomcat 4.1 下都出现).
可能原因如下: GET 提交的字符串都是 ISO8859-1 编码的, 只要把它的字符集转换到中文就行了. 解决方法如下(适用于 Tomcat 4.1, Tomcat 4.0 下不能用于 page.jsp?username=中文):
// 单个的参数
String result = toChi(request.getParameter("parameterName"));
// 多个参数
String values[] = request.getParametervalues(name);
if(values != null) {
for(int i = 0; i < values.length; i++) {
values[i] = toChi(values[i]);
}
} 问题4. Cookie 中不能写入汉字或者汉字无法正确显示.
可能原因如下: Tomcat 4.0 下自动把 Cookie 做了编码为 ISO8859-1 的存储, 而 Tomcat 4.1 下的 JSP 引擎不支持包含含有汉字的 Cookie.
Tomcat 4.0 下的解决方法:
// 根据 Cookie 名称得到请求中的 Cookie 值, 如果 Cookie 值是 null, 则返回 ""
public String getCookievalue(HttpServletRequest request, String name) {
Cookie[] cookies = request.getCookies();
if(cookies == null) return "";
for(int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
if(cookie.getName().equals(name)) {
// 需要对 Cookie 中的汉字进行 URL 反编码, 适用版本: Tomcat 4.0
return decode(cookie.getvalue());
}
}
// A cookie might not return a null value, may return a ""
return "";
}
Tomcat 4.1 下的解决方法:
// 写入包含汉字 Cookie 的方法
response.addCookie(new Cookie("cookieName", encode("汉字")));
// 得到 Cookie 值的方法(同 Tomcat 4.0 的解决方法)
public String getCookievalue(HttpServletRequest request, String name) {
Cookie[] cookies = request.getCookies();
if(cookies == null) return "";
for(int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
if(cookie.getName().equals(name)) {
// 需要对 Cookie 中的汉字进行 URL 反编码, 适用版本: Tomcat 4.0
return decode(cookie.getvalue());
}
}
// A cookie might not return a null value, may return a ""
return "";
} 问题5. 在 Tomcat 4.0 下 GET 请求(如: page.jsp?username=中文) 无法返回原来的值.
原因: 与 Tomcat 引擎有关, 不论是否转换内码, 均无法返回原来的值, 但是有一个替代方法, 如下:
将 URL 地址改变为 "page.jsp?username=" + encode("中文")
然后使用下列代码取回参数:
// 单个的参数
String result = toChi(request.getParameter("parameterName")); 问题6. JavaBean 里使用 <jsp:setProperty id="propName" property="*" /> 出现中文问题.
暂时未提供解决方案.
看一下,应该有帮助。
在你的文件第一行加上上面这一句,再试试
不行,我加了,应该 改 哪个文件 ,我 没 找到???
楼主的意思是静态页面,就是HTML页面的问题据说IE优先按照HTTP响应的头部的解码属性来解码,tomcat在响应HTML请求的时候在响应的头部自动添加了ISO-8859-1的解码方式,即使是在HTML页面里指明编码方式也无济于事的
这是我做过程序打印出响应的头部的字符信息的