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��ҳ��
��½����
求大神解答~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
先用
request.getCharacterEncoding()
看看拿到的编码是什么。先查查用的是什么编码 做相应的转换
我现在知道原因了,就是保存txt文件的时候一定要是UTF-8编码才可以!