Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JTwig模板的SpringWebApp中的UTF-8编码问题_Spring_Spring Mvc_Unicode_Utf 8_Jtwig - Fatal编程技术网

使用JTwig模板的SpringWebApp中的UTF-8编码问题

使用JTwig模板的SpringWebApp中的UTF-8编码问题,spring,spring-mvc,unicode,utf-8,jtwig,Spring,Spring Mvc,Unicode,Utf 8,Jtwig,我们在SpringWebApp中使用JTwig模板引擎。这是一个很棒的工具,具有非常好的特性,但我们在使用UTF-8的unicode内容编码方面遇到了困难 首先,viewsolver在Java中配置为: @Bean public ViewResolver viewResolver() { JtwigViewResolver view = new JtwigViewResolver() view.setPrefix("/WEB-INF/templates/"); view.

我们在SpringWebApp中使用JTwig模板引擎。这是一个很棒的工具,具有非常好的特性,但我们在使用UTF-8的unicode内容编码方面遇到了困难

首先,
viewsolver
在Java中配置为:

@Bean
public ViewResolver viewResolver() {
    JtwigViewResolver view = new JtwigViewResolver()
    view.setPrefix("/WEB-INF/templates/");
    view.setSuffix(".twig");
    return view;
}
然后,我们让Spring MVC控制器向模型添加一些文本,并将其传递给视图:

@RequestMapping(value = "/unicode", produces  = "text/html;charset=UTF-8")
public String testUnicode(ModelMap model) {
    model.addAttribute("text", "tête de bou  간편한 설치 및 사용");
    return "testPage";
}
最终渲染的位置:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   <meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
    <h1>tête de bouton -- 간편한 설치 및 사용</h1>
    From model: {{ text }}
</body>
</html>

布顿酒店간편한 설치 및 사용
来自模型:{{text}
但实际输出是:

tête de bouton--간편한 설�? 및 사용

来自型号:t?te de bou


在模板i中硬编码的Unicode文本几乎是正确的,但模型中的文本完全是错误的。有什么想法吗?

Jtwig在渲染时使用Java的默认字符集。这违反了细枝兼容性,如图所示


我为在3.1.0中发布的编写了一个。您可以执行以下操作:

1)
view.setEncoding(“UTF-8”);
2)
view.setContentType(“text/html;charset=UTF-8”)

第二