JForum 的错误页面中文乱码的问题

红薯 发布于 2009/12/26 16:09
阅读 1K+
收藏 0

JForum 这个论坛系统在处理中文的时候,还是多多少少有一些问题。

特别是当程序出错的时候,JForum 的错误页面就会显示乱码,包括页面上的所有带中文提示的信息都变成黑块块了。

经过研究 JForum 的程序处理流程,找到了问题的根源:

JForum.javahandleException 方法中,有一个错误用法

首先它对错误页面的content-type 做了设置,这步没错

response.setContentType("text/html; charset=" + encoding);

但是它在写错误信息到页面的时候用了一个 OutputStreamWriter ,大家知道 Java 的 IO 包中,Reader 和 Writer 相关的类是与编码相关的,但是你看它这个方法的原始代码:

new OutputStreamWriter(response.getOutputStream())

说实在的,这是一个愚蠢的错误,对于外国人来说可能没什么问题,但中文的内容就成了乱码,因此只要把这句改成

new OutputStreamWriter(response.getOutputStream(), encoding)

问题就解决了!

附:读别人的代码,也是一种乐趣。

加载中
返回顶部
顶部