【问题标题】:Unsupported characters for the charset 'ISO-8859-1' in Spring Res fileSpring Res 文件中的字符集“ISO-8859-1”不受支持的字符
【发布时间】:2021-11-01 08:13:08
【问题描述】:

我正在尝试在我的 Spring Boot 项目中实现本地化。它可以在 Locale.ITALIANLocale.GERMAN 等某些语言中正常工作。如果发生

马拉雅拉姆语、泰米尔语和印地语

得到“???”在 api 响应中。在这里我分享我的代码和屏幕截图

应用类

@SpringBootApplication
public class JavaI18nSpringBootApplication implements WebMvcConfigurer {

    public static void main(String[] args) {
        SpringApplication.run(JavaI18nSpringBootApplication.class, args);

    }

    @Bean
    public CharacterEncodingFilter characterEncodingFilter() {
        final CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setEncoding("UTF-8");
        characterEncodingFilter.setForceEncoding(true);
        return characterEncodingFilter;
    }
}

控制器

public class HelloController {

@Autowired
private LocaleResolver localeResolver;

@Autowired
Messages messages;

@Autowired
private HttpServletRequest httpServletRequest;
@Autowired
private HttpServletResponse httpServletResponse;
@GetMapping("/test")
@ResponseBody
public String test() {
    return  messages.get("hello");

}

消息类

    @Component
public class Messages {
    @Autowired
    private MessageSource messageSource;

    private MessageSourceAccessor accessor;

    @PostConstruct
    private void init() {
        Locale l = new Locale("ml", "IN");
        accessor = new MessageSourceAccessor(messageSource, l);
    }

    public String get(String code) {
        return accessor.getMessage(code);
    }

}

application.properties

【问题讨论】:

  • 我认为您应该更改文件编码来解决此问题。 application.properties 的文件编码。
  • @AbuBakarKhan 已经尝试过 input.encoding=utf-8 output.encoding=utf-8
  • 不,我的意思是属性文件本身

标签: spring spring-boot spring-mvc locale


【解决方案1】:

在 intellij idea 中转到:文件->设置->编辑器->文件编码,并将“属性文件的默认编码”更改为 UTF-8

【讨论】:

    猜你喜欢
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 2016-11-26
    • 2012-09-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多