2014-10-27 57 views
1

我們在Spring webapp中使用JTwig模板引擎。這是一款出色的工具,並且具有非常好的功能,但是我們用UTF-8編碼unicode內容。使用JTwig模板的Spring webapp中的UTF-8編碼問題

首先,ViewResolver在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> 

但輸出實際上是:

têtede bouton - 간편한설 ?使用方法

從型號:t?te de bou ??? ?? ? ??

在模板中硬編碼的Unicode文本幾乎是正確的,但模型中的一個完全擰緊。有任何想法嗎?

回答

0

你可以做到以下幾點:

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

第二