2 xszhang911 xszhang911 于 2015.06.14 01:28 提问

关于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居然还是乱码
请高人指教····

2个回答

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.06.14 15:16

写在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

xszhang911
xszhang911 回复xszhang911: 点击右键,在网页上
2 年多之前 回复
xszhang911
xszhang911 我都这样做了,表单的提交一直都是post,而request.setCharacterEncoding("gbk");也一直都是放在获取数据之前.但还是乱码,必须手动在页面点邮件,重现选以下字符集,才能出中文.
2 年多之前 回复
cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.06.14 22:23

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

Csdn user default icon
上传中...
上传图片
插入图片