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

为什么用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");

    评论

报告相同问题?