首页 > 解决方案 > Spring Boot 国际化适用于法语但不适用于韩语

问题描述

我有messages_ko.properties文件,我将浏览器设置为韩语。它使用消息文件加载页面,但国际化文本都是问号。

????? ...

它在 Eclipse 编辑器中看起来像韩语。文件编辑器设置为 UTF-8。我的谷歌浏览器可以显示韩文。整个页面http://www.hyundaigroup.com/是韩文的。我用了

curl -H "Accept-Language: ko" localhost:8080/page 

而国际化的文本大多仍然是问号。我messages_ko.properties在 Notepad++ 中打开了这个文件,它显示了韩语并且它是用 UTF-8 编码的。

当我将浏览器设置为法语时,它工作正常。非英文字符 ( Intéressé) 显示正常。HTML 标记为 UTF-8。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

那么为什么 Spring Boot 会修改韩语字符而不是法语字符呢?

我正在使用一个AcceptHeaderLocaleResolver.

@Bean
public LocaleResolver localeResolver() {
    AcceptHeaderLocaleResolver ahlr = new AcceptHeaderLocaleResolver();
    ahlr.setDefaultLocale(Locale.ENGLISH);
    return ahlr;
}

我正在使用 Spring Messages 和 JSP 来打印国际化文本。

<spring:message code="title"/>

标签: springspring-mvcspring-bootutf-8spring-internationalization

解决方案


我看到服务器响应标头是

Content-Type: text/html;charset=ISO-8859-1

我添加了

<%@ page contentType="text/html;charset=UTF-8" %>

到页面顶部,然后它起作用了。


推荐阅读