java读取中文文本文件乱码问题

Wesley13
• 阅读 640

今天遇到的问题是这样:用java读取一个中文文本文件,但读取到的却是乱码,之前一直没有问题,查清楚后,原来是因为今天是用的windows的记事本来编辑的文件,因编码方式是的不同而导致了乱码,解决方法就是设置编码方式为“UTF-8”,设置方法如下:

File file = new File("文件路径");
 Reader reader = null;
            try {
                System.out.println("以字符为单位读取文件内容,一次读一个字节:");
                // 设置编码方式为UTF-8
                reader = new InputStreamReader(new FileInputStream(file),"UTF-8");
             
                
                int tempchar;
                while ((tempchar = reader.read()) != -1) {
          
                    if (((char) tempchar) != '\r') {

// 对于windows下,\r\n这两个字符在一起时,表示一个换行。
// 但如果这两个字符分开显示时,会换两次行。
// 因此,屏蔽掉\r,或者屏蔽\n。否则,将会多出很多空行。

System.out.print((char) tempchar);
                    }
                }
                reader.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
java编码问题总结
对于Java,由于默认的编码方式是UNICODE,所以用中文也易出问题,常见的解决是:Strings2newString(s1.getBytes(“ISO88591”),”GBK”);1、utf8解决JSP中文乱码问题一般说来在每个页面的开始处,加入:<%@pagelanguage"java"contentTyp
Stella981 Stella981
3年前
Jenkins maven 构建乱码,修改file.encoding系统变量编码为UTF
一切都是windows的控制台默认编码GBK问题情景:使用jenkins构建,console输出的中文乱码。代码编码格式是utf8,因为Jenkins会默认读取当前系统的编码格式,导致构建日志乱码和selenium自动化测试输入的中文乱码。控制台输出乱码!(https://oscimg.oschina.net/oscnet/4
Wesley13 Wesley13
3年前
Java 使用 ResourceBundle 类读取 properties 文件中文乱码的解决方案
Java使用java.util.ResourceBundle类的方式来读取properties文件时不支持中文,要想支持中文必须将文件设置为ISO88591编码格式,这对于开发工具默认为UTF8来说很不友好,而且就算用ISO88591编码,当其他人将这个项目导入开发工具时很容易出现这个properties文件中的内容有乱码(前提是该文件中包含中文)
Wesley13 Wesley13
3年前
JAVA判断文件编码类型
java读取文件,处理过程中,可能因为文件的编码问题导致了中文乱码。有时需要将UTF8的改为ANSI的编码。以下代码就可以判断文件是什么编码方式。 主要jar包:cpdetector.jar  下载地址http://cpdetector.sourceforge.net/ 同时还需jchardet1.0.jar这个包,否则detec
Wesley13 Wesley13
3年前
JAVA获取txt文件内容
  JAVA读取txt文件内容  通常,我们可以直接通过文件流来读取txt文件的内容,但有时可能会出现乱码!此时只要设置一下文件字符编码即可。1importjava.io.BufferedReader;2importjava.io.File;3importjava.io
Wesley13 Wesley13
3年前
UTF
  最近工作中需要将一些数据写入CSV文件中,并要使用Excel打开进行查看。测试时发现,导出的CSV文件用Excel打开后,中文字符全部是乱码。写入CSV文件的是UTF8编码的数据,文件在Linux中查看是没有问题的,在Windows上用Excel打开却有乱码。在查阅资料后发现,windows系统中文本文档的编码格式用BOM来指定,在文件的开头要写入字符
Wesley13 Wesley13
3年前
HTTP之请求响应中文乱码小结
1.response响应中文乱码(1)乱码原因:服务器的编码方式和浏览器的解码方式不一致导致解决方案:统一服务器和浏览器的编码解码方式,都使用utf8代码实现:response.setContentType("text/html;charsetutf8");2.request请求中文乱码(1)post请求乱码  
报表问题小结
1.皕杰报表中读取模板文件出错原因是文件中有乱码了,可能是你用编辑器打开brt文件,编码改变,导致文件中有乱码造成的,改回文件编码没乱码就可以。2.Linux上,如何增大tomcat内存?修改tomcat/bin/catalina.sh在cygwinfal
天航星 天航星
4个月前
VSCode 控制台中文乱码(永久性解决)
在Windows上使用VSCode进行开发时,经常会遇到控制台中文乱码的情况,设置编码往往都无效或者不能永久性解决。归根到底,是因为Windows中文版系统cmd编码默认为GBK,而VSCode默认新建文件的编码为UTF8,所以会出现中文乱码情况。要想永久