[英]Spring Boot: how to set encoding in JSPF files to UTF-8
我正在努力編碼 jspf 文件。 當我在 jspf 中插入德語變音符號(例如“ä”)時,瀏覽器中的 output 被破壞(一些不可讀的字符)。
我啟動 Spring 從 eclipse 內部啟動,jspf 文件本身編碼為 UTF-8。
請注意,此問題僅適用於 jspf 文件。 使用 jsp 文件,一切正常,因為它們包含頁面指令<%@ page contentType="text/html;charset=UTF-8"%>
。
這是我迄今為止嘗試過的(沒有一個有效):
spring.http.encoding.charset=UTF-8, spring.http.encoding.enabled=true, spring.http.encoding.force=true
in application.propertiesserver.servlet.encoding.charset=UTF-8, server.servlet.encoding.enabled=true, server.servlet.encoding.force=true
-Dfile.encoding=UTF-8
作為 JVM arg唯一可行的選擇是在 jspf 文件中插入頁面指令:
<%@ page contentType="text/html;charset=UTF-8"%>
但這必須插入到每個 jspf 文件中。 我正在尋找一些全球性的選擇。
默認情況下,JSPF 編碼其 ISO-8859-1,您找到的解決方案是更改編碼的正確方法,正如您所說,修改每個文件可能會很痛苦。 我知道以最簡單的方式進行更改的方法是將其添加到您的web.xml
<jsp-config>
<jsp-property-group>
<url-pattern>/*</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
或者更改應用程序服務器的上下文,如果您使用的是 Tomcat 或其他服務器,則為 idk。
提供的解決方案不能直接應用於 Spring 引導,因為它沒有“具有” web.xml。
相反,您必須以編程方式配置屬性組:
@Component
public class JspContextCustomizer implements TomcatContextCustomizer {
@Override
public void customize(Context context) {
JspPropertyGroup group = new JspPropertyGroup();
group.addUrlPattern("/*");
group.setPageEncoding("UTF-8");
context.setJspConfigDescriptor(new JspConfigDescriptorImpl(
Collections.singletonList(new JspPropertyGroupDescriptorImpl(group)),
Collections.emptyList()));
}
}
這行得通!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.