java读取properties文件中文乱码

properties文件在项目中通常用来作为基础配置文件使用,存储一些固定的常量值。日前在维护一个旧项目中需要添加一个联系人员名称和邮箱的配置,出现了中文乱码的问题。配置读取的代码如下:

  1. 处理之前
    配置文件
    name=张三
    [email protected]
    
    java读取
    Properties properties = new Properties();
    InputStream inputStream = this.getClass().getResourceAsStream("common/info.properties");
    properties.load(inputStream);
    properties.getProperty("name");   
    
    拿到的name值为
    name='å¼ ä¸‰'
    
  2. 乱码解决方式一
    将配置文件中的中文采用unicode编码的方式,其余不变。
    配置文件修改为
    name=\u5f20\u4e09
    [email protected]
    
    此时拿到的值为
    name='张三'
    
  3. 乱码解决方式二
    在读取的时候采用BufferedReader去读取,其余配置方式不变。
    采用原中文配置
    name=张三
    [email protected]
    
    读取加载修改为
    Properties properties = new Properties();
    InputStream inputStream = this.getClass().getResourceAsStream("common/info.properties");
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
    properties.load(reader);
    properties.getProperty("name");  
    
    此时拿到的值为
    name='张三'
    

你可能感兴趣的:(JAVA)