各位高手:jsp文件包含jsp文件时的中文问题 与web服务器有关,你用哪一个web服务器 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦,抱歉,忘了说我的配置了:win2000pro+jdk1.4.0+tomcat3.2.1+apache1.3.20 请试一下这个:成功了别忘了加分哟!:)<jsp:include page="xxxxx.jsp" flush="true"/> 试一试每个被包含文件内都加上<%@ page contentType="text/html;charset=gb2312" %> 老兄,问题还没有解决!query.jsp中的所有<%@ include file="xxxx.jsp" %>都改成上述形式吗?<%@ page contentType="text/html;charset=gb2312" import="java.sql.*,java.util.*"%>放在哪个文件里面呢? <%@ page contentType="text/html;charset=gb2312"%> 每页都要有<%@ page contentType="text/html;charset=gb2312" %> 对于tomcat 3.2.1,这是它的一个bug,包含文件中的汉字不能正确显示,解决的方法有两个1。对每一个包含文件中的每一处汉字,进行字符集转换2。修改tomcat的源代码,更正这个错误,然后重新编译,如果想要修改方法,请回个帖! tomcat 修改方法1。找到src\org\apache\jasper\compiler\Parser.java,打开它2。找到函数public boolean accept(...3。在这个函数下找到这样几行 else if(match.equals("include")) JspUtil.checkAttributes("Include directive",attrs,includeDvalidAttrs);4。这样修改 else if(match.equals("include")) { JspUtil.checkAttributes("Include directive",attrs,includeDvalidAttrs); attrs.put("encoding","gb2312"); }5。编译此文件,得到一堆.class文件6。找到tomcat\lib\jasper.jar7。使用jar命令行展开该文件,得到一个目录结构及文件8。将5中产生的.class文件按照目录放在7中的对应目录下,覆盖原来的文件9。使用jar命令行工具重新打包成jasper.jar文件10。将9中生成的jasper.jar拷贝到tomcat\lib下,覆盖原来的文件11。重启tomcat大功告成赶快加分! else if (match.equals("include")) { JspUtil.checkAttributes ("Include directive", attrs, includeDvalidAttrs, start); attrs.put("encoding","gb2312"); System.out.println("ok"); }我修改了你所说的类,并按照你的要求重新构造了jasper.jar文件,我确实看到了新的类文件的生成日期是我编译的时间,而且在你的要求上加了System.out.println("ok");,但是我重新启动tomcat后没有反应啊,既没有输出ok也没有看到menu.jsp中的中文正常,我甚至在该方法的入口处打印ok也没有任何反应,无论我使用的是<%@ include file="menu.jsp" %>还是<jsp:include page="xxxxx.jsp" flush="true"/>,问题出在什么地方呢?难道要将所有的<%@ include 换成<jsp:include 吗 即使我将所有的<%@ include 形式换成<jsp:include 都不好用啊!!!!你这样做过吗?我到底错在那里呢? 这说明你的jasper.jar文件可能不止一个,而你又没有全部覆盖,看看你实际启动tomcat时的classpath吧 1.这种修改只适用于<%@ include 形式,要在最外层的jsp文件开头设置charset=gb23122.对于<jsp:include ,每个文件开头都设置charset=gb2312,不用修改任何tomcat的源文件都是对的 http://www.csdn.net/expert/topic/318/318066.shtm我的也是没有解决,使用<jsp:inclue...>错误:Page directive: can't have multiple occurrences of contentType 我不是没有对你的方法没有信心,只是不知道错在那里了,我在国外的一个站点上也看到说修改tomcat的源代码可以解决中文问题,但是没有具体的代码,我也不知道该改哪儿。我还装了tomcat4,不知道是否是这个原因,我在试试,不要急,我会给分的。 OK,你的方法是对的,我把原来的那个jasper.jar文件在该目录下存为了jasper2.jar,结果tomcat启动的路径里面包含了它,而那个在类路径的后面,可能比前面的优先,结果:)。非常感谢你的帮助!另外我已经不用tomcat了,因为在页面间使用request.getParameter()传递参数时得到的中文还是需要进行编码转换,而resin这两个都没有问题,现在我的问题是我在使用apache的jakarta project的taglibs,其中的DBTags里面的一个标签getNumber在resin下不支持,而tomcat支持,哎,为什么免费的东西总有问题呢? 不知这样行不行:你把charset=gb2312这个东西去掉,然后在页面里所有涉及到有中文的地方,就用这种形式。{%>....<%=var%>//var就代表汉字.....<%}我以前在用MYSQL时就是这样搞定的,不知在这里行不行,我只是随便说说而已。 to secball(一片秋叶):这个方法我试过,不行的。 lliang2(ll)的方法还有一个问题是对页面属性设置<%@ page contentType="text/html;charset=gb2312" import="java.sql.*,java.util.*"%>必须放在query.jsp中,如果放在header.jsp中则query.jsp中的静态中文还是不能正常显示,只是其它被包含页面中的中文没有问题了。 看来必须要修改源码了阿!另外:resin支持多平台么? resin的国际化支持我觉得比tomcat好!resin好像也支持多平台。 response.setContentType("text/html; charset=GB2312");或者response.setContentType("text/html; charset=UTF-8");charset前面留一个空格 问个菜的~ js判断动态复选框问题 jsp中调用java编译器的问题 麻烦个位帮看看这是什么错误,先谢了。 javascript 鼠标移过链接时显示与隐藏层的问题。 jsp程序员薪水范围 jdom读取xml文档的问题.繁体显示不了.请问如何解决/? Proxool连接池中文乱码如何解决 关于iis与jsp的问题:怎么样让iis能运行jsp网页 如何进行两个date类型的比较啊? 为何不能显示中文??? 唉!还是中文问题!!!!!!!!!!
win2000pro+jdk1.4.0+tomcat3.2.1+apache1.3.20
<jsp:include page="xxxxx.jsp" flush="true"/>
query.jsp中的所有<%@ include file="xxxx.jsp" %>都改成上述形式吗?
<%@ page contentType="text/html;charset=gb2312" import="java.sql.*,java.util.*"%>
放在哪个文件里面呢?
包含文件中的汉字不能正确显示,解决的方法有两个
1。对每一个包含文件中的每一处汉字,进行字符集转换
2。修改tomcat的源代码,更正这个错误,然后重新编译,
如果想要修改方法,请回个帖!
1。找到src\org\apache\jasper\compiler\Parser.java,打开它
2。找到函数public boolean accept(...
3。在这个函数下找到这样几行
else if(match.equals("include"))
JspUtil.checkAttributes("Include directive",attrs,includeDvalidAttrs);
4。这样修改
else if(match.equals("include"))
{
JspUtil.checkAttributes("Include directive",attrs,includeDvalidAttrs);
attrs.put("encoding","gb2312");
}
5。编译此文件,得到一堆.class文件
6。找到tomcat\lib\jasper.jar
7。使用jar命令行展开该文件,得到一个目录结构及文件
8。将5中产生的.class文件按照目录放在7中的对应目录下,覆盖原来的文件
9。使用jar命令行工具重新打包成jasper.jar文件
10。将9中生成的jasper.jar拷贝到tomcat\lib下,覆盖原来的文件
11。重启tomcat
大功告成
赶快加分!
JspUtil.checkAttributes ("Include directive", attrs,
includeDvalidAttrs, start);
attrs.put("encoding","gb2312");
System.out.println("ok");
}
我修改了你所说的类,并按照你的要求重新构造了jasper.jar文件,我确实看到了新的类文件的生成日期是我编译的时间,而且在你的要求上加了System.out.println("ok");,但是我重新启动tomcat后没有反应啊,既没有输出ok也没有看到menu.jsp中的中文正常,我甚至在该方法的入口处打印ok也没有任何反应,无论我使用的是<%@ include file="menu.jsp" %>
还是<jsp:include page="xxxxx.jsp" flush="true"/>,
问题出在什么地方呢?难道要将所有的<%@ include 换成<jsp:include 吗
你这样做过吗?我到底错在那里呢?
看看你实际启动tomcat时的classpath吧
2.对于<jsp:include ,每个文件开头都设置charset=gb2312,不用修改任何tomcat的源
文件都是对的
我的也是没有解决,使用<jsp:inclue...>
错误:
Page directive: can't have multiple occurrences of contentType
另外我已经不用tomcat了,因为在页面间使用request.getParameter()传递参数时得到的中文还是需要进行编码转换,而resin这两个都没有问题,现在我的问题是我在使用apache的jakarta project的taglibs,其中的DBTags里面的一个标签getNumber在resin下不支持,而tomcat支持,哎,为什么免费的东西总有问题呢?
你把charset=gb2312这个东西去掉,然后在页面里所有涉及到有中文的地方,就用这种形式。
{%>
....
<%=var%>//var就代表汉字
.....<%}
我以前在用MYSQL时就是这样搞定的,不知在这里行不行,我只是随便说说而已。
这个方法我试过,不行的。
必须放在query.jsp中,如果放在header.jsp中则query.jsp中的静态中文还是不能正常显示,只是其它被包含页面中的中文没有问题了。
另外:resin支持多平台么?
或者response.setContentType("text/html; charset=UTF-8");
charset前面留一个空格