Guest User

Untitled

a guest
Apr 21st, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. FileReader读取中文乱码
  2.  
  3. log4j2写的日志到文件中,已经配置了UTF-8编码
  4.  
  5. ```
  6. appender.dailyrollingfile.layout.charset=UTF-8
  7. ```
  8. log文件中确实是UTF-8编码
  9. 但在用FileReader读取到html页面的时候出现乱码
  10.  
  11. ```java
  12. response.setContentType("text/html;charset=UTF-8");
  13.  
  14. FileReader fr = new FileReader(logPath);
  15. BufferedReader br = new BufferedReader(fr);
  16. String line = br.readLine();
  17. if(line!=null){
  18. out.println(line);
  19. }
  20. ```
  21.  
  22. 是因为FileReader在读取时采用系统默认的字符集GBK
  23.  
  24. 两种解决方案:
  25.  
  26. 一、
  27. ```java
  28. line=new String(line.getBytes(System.getProperty("file.encoding")),"UTF-8"); //将系统默认编码转为UTF-8
  29. ```
  30.  
  31. 二、
  32. ```java
  33. FileInputStream fis = new FileInputStream(logPath);
  34. InputStreamReader fr = new InputStreamReader(fis,"UTF-8"); //改用UTF-8读取文件
  35. BufferedReader br = new BufferedReader(fr);
  36.  
  37. ```
Add Comment
Please, Sign In to add comment