美文网首页
java编码的一个小坑

java编码的一个小坑

作者: 风驰电掣一瓜牛 | 来源:发表于2017-06-02 22:17 被阅读0次

问题是这样的: 当一行一行读取中文文件时,调用println输出的是乱码,将InputStreamReader设置为正确的编码还是不行

代码如下:

import java.io.FileInputStream;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintStream;  

public class test {
    public static void main(String []args) throws IOException {

        BufferedReader reader = new BufferedReader(
            new InputStreamReader(
                    new FileInputStream(
                            args[0]),
                    "UTF-8"));
        String title = reader.readLine();
        System.out.println(title);
        //PrintStream out = new PrintStream(System.out, true, "UTF-8");
        //out.println(title);
        reader.close();
    }   
}

网上搜了老半天,终于找到原因: system.out.println按照系统编码打印

于是输入locale命令查看系统编码,显示为C,怪不得是乱码。

将系统编码设置为utf8的: export LANG=en_US.utf8 (参考 http://blog.csdn.net/lwm_1985/article/details/8509506

再次运行输出就正常了。

如果不想改变系统编码,在代码中也可以更改,如:

PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(title);

或者这样:

System.setOut(new PrintStream(System.out, true, "utf-8"));
System.out.println(title);

相关文章

  • java编码的一个小坑

    问题是这样的: 当一行一行读取中文文件时,调用println输出的是乱码,将InputStreamReader设置...

  • Java Web 基础知识目录

    Tomcat环境搭建sevelet编码问题Java Web 走过的坑servlet总结JSP总结EL表达式总结JS...

  • (九)编码的原理

    最近在使用netty的时候,踩了几个小坑,所以专门看了一下编码的原理。首先,编码之后,netty是如何将编码的结果...

  • Java编码实验

    为了更好的理解什么时候会出现编码问题,做了小实验。 先在本地写了一个txt文件,使用UTF-8编码。 Java的I...

  • Base64编码

    在Java 8中,Base64编码已经成为Java类库的标准。 Java 8 内置了 Base64 编码的编码器和...

  • 【Jenkins】Mac下安装Java Jenkins环境

    1、配置java 环境 (1)下载mac下使用的dmg java 包 小坑:选择java版本和jenkins版本时...

  • python---字符编码问题

    问题 最近在用python 2.7写代码的时候,遇到一个老生常谈的小坑----- ** 字符编码 ** 从数据库获...

  • [Android] RecyclerView的Bug:Index

    本文介绍项目中使用RecyclerView遇到的一个小坑。 异常原因:java.lang.IndexOutOfBo...

  • 为什么Java中char是两个字节?

    因为java采用的Unicode编码,所以对于中文来说,一个汉字在Unicode编码下占两个字节,所以java中c...

  • Java经典面试题最详细版(面试必备)二

    Java语言采用何种编码方案?有何特点?*Java语言采用Unicode编码标准,它为每个字符制订了一个唯一的数值...

网友评论

      本文标题:java编码的一个小坑

      本文链接:https://www.haomeiwen.com/subject/igxpfxtx.html