我目前有一个带有Spring Boot后端的Angular 4应用程序,都在tomcat 9服务器上使用。
无论我尝试什么,当我转到应用程序URL时,所提供的html文件的内容类型都以ISO-8859-1编码(我想使用UTF-8)。
我已经尽一切可能添加了utf-8,从html文件到服务器配置,但不能解决问题(从后端返回的数据以utf-8编码,而不是html文件)。
这是我当前的堆栈:
角度4
春季靴
雄猫9
Chrome 59 / Firefox 54
在tomcat中:
<filter>
<filter-name>setCharacterEncodingFilter</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<async-supported>true</async-supported>
</filter>
在我拥有的所有连接器中添加了
URIEncoding="UTF-8" useBodyEncodingForURI="true"
。在春天 :
在请求标头中添加了带有utf-8字符集的content-type。
在HTML中:
添加了meta:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
如果我忘记了一些信息,请随时问我。
谢谢。
最佳答案
实际上,我设法通过将spring。的默认过滤器从web.xml中的tomcat更改为春季来使它起作用:
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>