【发布时间】:2021-11-01 08:13:08
【问题描述】:
我正在尝试在我的 Spring Boot 项目中实现本地化。它可以在 Locale.ITALIAN、Locale.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