奔跑的蜗牛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 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作