iceant
2003-07-24 21:29

我猜想 Tomcat 在编译 jsp 的时候做了些处理。

当你在 jsp 上申明该jsp 文件的 charset 时, jsp 编译器会以给定的charset 来读取 jsp 文件,并生成相应的 java 文件,然后又按给定的 charset 来编译生成的 java 文件。

这样的处理我认为比较合理

jackyz
2003-07-25 14:26

我也跟踪过 jboss/jetty (它在 jsp 部分也采用了 org.apache.jasper 组件),它的处理和你说的大致相同。年代久远,具体细节已记不清了。 Tomcat 的确有优越的地方,不过做商业应用似乎很多人认为它性能不好以及不够稳定。

jackyz
2003-08-13 11:14

继续分析,得到一个不修改任何文件情况下的可行办法。

1.所有的JSP都要设定contentType="text/html; charset=GBK",注意,include中设的不起效,必须每个文件都设

2.使用request.setEncoding("GBK")预处理Request

好处:

1.不要求设定系统编码方式

2.不需要修改resin的文件

似乎这是更好的解决办法。

fahrenheit
2003-08-16 01:06

用:httpd.exe -J-Dfile.encoding=ISO-8859-1

从来没有什么问题!

fahrenheit
2003-08-16 01:06

注意java classes也要用ISO-8859-1编译