我有一个简单的表单提交请求。在请求接收到Servlet之前,它正在通过筛选器。在该过滤器中,我将字符集编码设置为"iso-8859-15",,因为此字符集编码请求参数值没有正确编码。
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain chain) throws IOException {
servletRequest.setCharacterEncoding("iso-8859-15");例如,我的参数值为“1 1Depósito”,并错误地将其编码为“1 1Dep”而不是“1 1Depósito”。因为我的请求参数值中有一些国际语言的特殊字符(即"ó")。
根据我的google研究,输入请求编码是UTF-8,但是在过滤器中我们设置了不同的编码,即iso-8859-15,因此它可能不是正确的编码。但是,只有在WebLogic 10中运行时,我们才能看到这个问题。在spring嵌入式Tomcat中运行时,相同的代码运行良好。
注:
- Content-Type: application/x-www-form-urlencoded; charset=UTF-8
对于春季引导嵌入式Tomcat服务器,我们有任何默认的编码设置吗?
如何在我的WebLogic部署中解决这个问题?
期待您的宝贵投入。
谢谢,BSK
发布于 2020-04-01 09:01:36
晚做总比不做强。
但是,只有在WebLogic 10中运行时,我们才能看到这个问题。
WebLogic要么从WebLogic服务器系统属性获取字符集配置,要么从weblogic.xml获取字符集配置
另一方面,嵌入式Tomcat忽略了weblogic.xml。
Fix
要么在weblogic.xml中提供字符集,要么提供WebLogic服务器系统属性。
-Dweblogic.webservice.i18n.charset=utf-8 <charset-params>
<input-charset>
<resource-path>/*</resource-path>
<java-charset-name>UTF-8</java-charset-name>
</input-charset>
</charset-params>https://stackoverflow.com/questions/43719223
复制相似问题