SpringBoot读取默认配置文件application.properties【UTF-8编码】的中文变量值一定要出现乱码?

在一个正常的springBoot工程中其application.properties的配置文件如下内容【就一行】

base.myname2=my Name properties 我的名字

然后配置一个读取配置文件的类

package com.beini.base.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import lombok.Data;
@Configuration
@ConfigurationProperties(prefix="base")
/*相当于普通java类的getter和setter*/
@Data
public class PropertiesConfig {		
    private String myname2;
}

然后在一个测试类开始书写测试类

package com.beini.base;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.beini.base.config.PropertiesConfig;
@RunWith(SpringRunner.class)
@SpringBootTest
public class BaseApplicationTests {
    @Autowired
    private PropertiesConfig config;
    @Test	
    public void contextLoads() {
    	System.out.println("yml文件"+config.getMyname());		
    	System.out.println("properties文件"+config.getMyname2());	
    	}
    }
}

打印出来的结果如下【运行测试类】

properties文件my Name properties æçåå­

也就是说中文“我的名字” 替换成了如下乱码

æçåå­

问题代码下载链接https://github.com/XiaoCao1434/beini-base

希望有答案的慕课友们解答。

另外我试过以下两者方式可行

a: properties 文件的编码格式使用默认的ISO-8859-1编码格式【缺点就是编辑的文件不方便肉眼直接观察】

b: 将properties的内容转换成yml文件【缺点就是不方便当前项目属性配置转换】

希望的答案properties的文件编码格式是UTF-8,而且属性值可能是中文在读取配置文件之后其属性值能够正确读出中文值且配置文件的内容能够方便肉眼看到汉字

小草1434
浏览 6944回答 2
2回答

Frank作家

在编译器的设置编码的地方 设置为utf-8  然后文件编码也就是utf-8喽

元气满满GO

ide的编码设为utf-8,配置文件编码也设置utf8
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java