【发布时间】:2015-09-06 08:50:27
【问题描述】:
我想使用 UTF-8 字符编码,但我在某处读到控制器的默认编码为 ISO-8859-1。
我正在使用带速度的弹簧靴。
所以我做了什么,我尝试将以下内容(一次一个)添加到标题中(它们都不起作用。)
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
在 application.properties 中添加以下几行:
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
spring.velocity.charset=UTF-8
spring.velocity.content-type=text/html
server.tomcat.uri-encoding = UTF-8
我什至尝试在控制器中添加以下行:
@RequestMapping(value = "/", method = RequestMethod.GET, produces={"text/html; charset=UTF-8"})
Plus 尝试将以下 bean 添加到应用程序类中:
@Bean
public HttpMessageConverter<String> responseBodyConverter() {
HttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
return converter;
}
这是我在速度模板中包含的示例文本:
A sötét lovag igazi főhőse azonban valahogy ezúttal mégsem a mostanság nőnemű családtagjait szállodaszobábkban riogató Christian Bale, azaz a denevérember lett - hanem az ellenfél.
这就是我得到的输出:
A sötét lovag igazi fÅhÅse azonban valahogy ezúttal mégsem a mostanság nÅnemű családtagjait szállodaszobábkban riogató Christian Bale, azaz a denevérember lett - hanem az ellenfél.
编辑:
这是我目前使用的控制器:
@RequestMapping(value = "/", method = RequestMethod.GET, produces={"text/html; charset=UTF-8"})
public String homepage(Map<String, Object> model) {
return "homepage";
}
我在模板中有一个 homepage.vm 文件。其中有一个包含此行的标题部分:
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
【问题讨论】:
-
您确定您用于编辑和保存模板的文本编辑器或 IDE 使用 UTF8 吗?你用什么做编辑?
-
你试过用
-Dfile.encoding=UTF-8启动应用吗? -
我到处都在使用 Intellij 和字符编码的 UTF-8。标志给了我相同的输出。我这样启动应用程序: mvn clean spring-boot:run -Dfile.encoding=UTF-8
-
还有其他想法吗?我真的需要一个解决方案。
标签: spring encoding utf-8 character-encoding iso-8859-1