关于JSp中表单内容提交后的乱码的问题

这是我开头的设置
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
中间又写了
<%request.setCharacterEncoding("GBK");%>//防止乱码
最后一部分代码是
<%
Scanner scan=new Scanner(new FileInputStream(file),"GBK");
scan.useDelimiter("\n");
StringBuffer buf=new StringBuffer();
while(scan.hasNext())
{
buf.append(scan.next()).append("
");
}
scan.close();
%>
<%=buf%>
其中file文件,保存了表单提交后的信息,file文件中的信息没有乱码
全程设置为GBK,就是为了防止出现乱码·,结果数据读取,buf居然还是乱码
请高人指教····

写在jsp文件中
<%@ page contentType="text/html;charset=GBK"%>

只对post有效.
request.setCharacterEncoding("gbk");该代码一般放在最前面.
上面这行代码只能getParameter()前设置,否则此代码无效.

http://zhidao.baidu.com/link?url=2RFSD-fPjWPGw9MWUYiQ1wo1RIHR75x-MaWM3i3YdNB7yMBVjJFvZcb_tXLVSuB8TORLbNuBLPnh7bl-xz_aeep-jEzEl--Ll3Tp-eL-1jK

我记得tomcat里的配置文件,也有一个修改字符集的地方