Java中使用io流读取文件内容却出现乱码问题

发布于 2022-09-04 10:14:22 字数 1468 浏览 15 评论 0

1、如题,使用很多编码方式还是解决不了

public void upload2() throws ServletException, IOException {
        HttpServletRequest request = getRequest();
        request.setCharacterEncoding("utf-8");
        // 1.接收的请求正文内容 
        InputStream in = request.getInputStream();
        
        // 2.转换成字符流
        BufferedReader br = new BufferedReader(new InputStreamReader(in,"UTF-8"));
        
        
        // 3.开始解析内容

        // 3.1 读取文件的分割符 
        String fileTag = br.readLine();

        // 3.2 读取文件名称 
        String sLine = br.readLine();
        String fileName = sLine.substring(sLine.lastIndexOf("filename=") + 10, sLine.length() - 1);
        System.out.println(fileName);
        
        // 3.3 读取文件类型
        String tLine = br.readLine();
        String contentType = tLine.substring(13);
        System.out.println(contentType);
        
        // 3.4 跳过一个空行
        br.readLine();


        // 3.5 读取文件内容
        String content = "";
        while ((content = br.readLine()) != null) {
            // 排除文件分割结束符
            if ((fileTag + "--").equals(content)) {
                break;
            }
            content = new String(content.getBytes("ISO-8859-1"),"UTF-8"); 
            System.out.println(content);
        }

        // 3.6 关闭
        br.close();
    }

不知道是不是我解码的方式不对还是其他原因,在控制台输出的内容如下:
jquery�﷨
boostrap
���д����(ǰ��ҳ�棩
extjs4.2
ģ�¾��������Ա��̳ǵĽ���
��̨��ɾ�IJ��ҳ��
��½����

求大神解答~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

守望孤独 2022-09-11 10:14:22

先用request.getCharacterEncoding()看看拿到的编码是什么。

夜唯美灬不弃 2022-09-11 10:14:22

先查查用的是什么编码 做相应的转换

じ违心 2022-09-11 10:14:22

我现在知道原因了,就是保存txt文件的时候一定要是UTF-8编码才可以!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文