奔跑的蜗牛9 2019-03-27 15:15 采纳率: 0%
浏览 1484

为什么用form表单上传的file文件内容不是乱码,但是form的一般input元素输入中文却乱码了?

form表单信息:

<form method="post" action="hi" enctype="multipart/form-data" >
    name:<input name="xingming"/><br/>
    password:<input name = "pwd"/><br/>
    file:<input name = "wenjian" type="file"/><br/>
    <input type="submit" value="提交啦">
</form>

servlet获取代码:

req.setCharacterEncoding("gb2312");
        resp.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html;charset=UTF-8");
        ServletInputStream sis = req.getInputStream();  
        byte[] buf = new byte[1024];
        int flag = 0;
        while((flag = sis.readLine(buf, 0, 1024)) != -1){
            String line = new String (buf,0,flag);
            resp.getWriter().write(line+"<br/>");
        }
        sis.close();

传入信息:
图片说明

得到信息:

图片说明

不知道怎么将input里的中文怎么读出来??????

我的意思是:上传的那个文件是可以读出来的(不乱码),但是我要得到form里简单input里的值就出现了乱码,如图:
图片说明

  • 写回答

3条回答

  • 星空下的歌声 2019-03-27 16:12
    关注

    这个你如果是用post 方式提交数据的话,默认是使用utf-8来编码数据的,所以那个开头req.setCharacterEncoding("gb2312");我觉得应该改为req.setCharacterEncoding("utf-8");

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?