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

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��ҳ��
��½����

求大神解答~

阅读 10k
3 个回答

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

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

新手上路,请多包涵

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏