关于spring boot属性文件中文参数文输出到页面乱码

本文探讨了Eclipse中.properties文件的默认编码ISO-8859-1与UTF-8编码之间的区别及冲突问题,并提供了如何正确配置以避免中文乱码的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         在eclipse中,以.properties后缀的属性文件默认是ISO-8859-1,即字节编码,这种编码方式向下兼容ASCII,而Unicode编码与ISO-8859-1标准兼容,UTF-8则是对Unicode进行了编码,是其一种实现方式。UTF-8(8-bit Unicode Transformation Format),是一种变长的编码方式,它以8位为码元,用1-6个码元对Unicode进行编码,对英文字符使用单字节编码,对中文编码用到三个字节来编码。

         所以在默认编码格式为ISO-8859-1的属性文件中直接输入中文显示的并不是中文,而是这个中文的ASCII码,当然也可以在preferencds>content types>Text中修改为UTF-8,这样在属性文件中输入的中文会直接接显示中文,而不是ASCII码了,但是在程序中读取的中文是乱码,猜测应该是spring boot中属性文件默认的编码格式是ISO-8859-1,所以在读取里面的参数时也是以这个格式读取,因为你已经把属性文件的编码格式改成了UTF-8,所以springboot在注入属性参数的时候以ISO-8859-1的编码格式读取编码格式为UTF-8的内容就会乱码。

         最后,我把属性文件的编码格式改成了默认的ISO-8859-1,输入中文显示的是ASCII码,然后再输出到浏览器页面上就显示正常了,浏览器采用的是自动编码,结果更验证了之前的猜测应该是正确的。为什么说是应该,因为我没有去查看源码,所以还不能下最终判断。

@RestController

@ConfigurationProperties(prefix ="my")

public class TestController {

   private List<String>gaox=new ArrayList<String>();

   private Loggerlog=Logger.getLogger(TestController.class);

   public List<String> getGaox() {

      return gaox;

   }

   public void setGaox(List<String> gaox) {

      this.gaox =gaox;

   }

   @RequestMapping("/gaox")

   public List<String> gaox(){

      for(Stringg:gaox){

        System.out.println(g);

        log.info(g);

      }

      return gaox;

   }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凡夫贩夫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值