juzi214032
V2EX  ›  Java

InteliJ IDEA 中自定义 YML 属性中文提示乱码问题

  •  
  •   juzi214032 · Mar 27, 2019 · 3263 views
    This topic created in 2630 days ago, the information mentioned may be changed or developed.

    在 SpringBoot 中,使用了@ConfigurationProperties注解自定义配置类,并引入spring-boot-configuration-processorjar 包。在类的字段上作了注释,然后在 yml 中写配置时就会有提示。

    @Data
    @ConfigurationProperties(prefix = "juzi")
    public class MyProjectProperties {
    
        /**
         * 中国志愿网
         */
        private ChinaVolunteerProperties volunteer;
    
    }
    

    使用过程中发现注释如果是中文就会乱码,现象如图

    经过自己研究,发现原因如下: 之所以能有代码提示,是因为spring-boot-configuration-processor生成了一个spring-configuration-metadata.json文件,在target/classes/MATE-INF目录下。该文件编码格式为 UTF-8,但是 IDEA 在读取此文件时使用的是 GBK 编码( Windows10 环境下)。所以就造成了中文乱码的问题。

    现在想到的解决办法就 2 个:

    • spring-configuration-metadata.json生成的编码格式改为 GBK
    • 修改 IDEA 读取spring-configuration-metadata.json文件时使用的编码为 UTF-8

    但是两种方法都不知道应该怎么实现,不知道有没有遇到过此问题的大佬

    4 replies    2019-11-18 16:03:57 +08:00
    art2cat
        1
    art2cat  
       Mar 27, 2019   ❤️ 1
    Settings>Editor>File Encodings ? 这个不行吗?
    juzi214032
        2
    juzi214032  
    OP
       Mar 27, 2019 via Android
    @art2cat 这个只能设置源码文件的编码,不能设置那个生成的 json 文件编码
    cyspy
        3
    cyspy  
       Mar 27, 2019
    全局 UTF-8 解决
    liangyun
        4
    liangyun  
       Nov 18, 2019
    现在解决了吗,我也遇到了这个问题,不过我感觉和编码关系不大,因为我的类注释是可以正常显示的,只是字段注释不能正常显示
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4736 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 09:59 · PVG 17:59 · LAX 02:59 · JFK 05:59
    ♥ Do have faith in what you're doing.