首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ISO-8859-15字符集在Weblogic中应用错误,而Tomcat没有正确应用

ISO-8859-15字符集在Weblogic中应用错误,而Tomcat没有正确应用
EN

Stack Overflow用户
提问于 2017-05-01 12:38:26
回答 1查看 2.1K关注 0票数 0

我有一个简单的表单提交请求。在请求接收到Servlet之前,它正在通过筛选器。在该过滤器中,我将字符集编码设置为"iso-8859-15",,因为此字符集编码请求参数值没有正确编码。

代码语言:javascript
复制
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中运行时,相同的代码运行良好。

注:

  1. 如果我在我的过滤器中将字符编码设置为UTF-8,那么即使在Weblogic中,它也工作得很好,但是我想知道"iso-8859-15“编码在Tomcat中是如何工作的,而在WebLogic中是如何工作的呢?
  2. 在WebLogic和Tomcat中,输入请求内容类型相同,如下所示:
代码语言:javascript
复制
- Content-Type: application/x-www-form-urlencoded; charset=UTF-8

  1. 那么,为什么setCharacterEncoding只在WebLogic上失败,而在Tomcat中失败呢?

对于春季引导嵌入式Tomcat服务器,我们有任何默认的编码设置吗?

如何在我的WebLogic部署中解决这个问题?

期待您的宝贵投入。

谢谢,BSK

EN

回答 1

Stack Overflow用户

发布于 2020-04-01 09:01:36

晚做总比不做强。

但是,只有在WebLogic 10中运行时,我们才能看到这个问题。

WebLogic要么从WebLogic服务器系统属性获取字符集配置,要么从weblogic.xml获取字符集配置

另一方面,嵌入式Tomcat忽略了weblogic.xml

Fix

要么在weblogic.xml中提供字符集,要么提供WebLogic服务器系统属性。

  • WebLogic服务器系统属性
代码语言:javascript
复制
-Dweblogic.webservice.i18n.charset=utf-8
  • weblogic XML Config
代码语言:javascript
复制
    <charset-params>
        <input-charset>
            <resource-path>/*</resource-path>
            <java-charset-name>UTF-8</java-charset-name>
        </input-charset>
    </charset-params>
  • 文档

国际化WebLogic Web服务

weblogic.xml -字符集-参数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43719223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档