当前位置: 首页 > 知识库问答 >
问题:

中文UTF-8字符在Weblogic 10.3中出现错误,但在Tomcat 6中出现错误

夹谷硕
2023-03-14

我正在使用JavaEE和Spring开发一个需要输出中文UTF-8字符的网站。我有一个执行请求的servlet。getRequestDispatcher(…)。在一些处理之后将(请求、响应)转发到jsp。在这个servlet中,在执行转发之前

response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");

在jsp文件(以及我项目中的每个jsp文件)的顶部,我有:

<%@page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8"%>

测试把UTF-8汉字硬编码在jsp页面上。我

在我的weblogic启动脚本中,我尝试了-Dfile.encoding的不同java选项,如UTF-8和utf8,但是无论设置如何,中文字符都被乱码了。

在weblogic中。xml我有一个:

<charset-params>
    <input-charset>
        <resource-path>/*</resource-path>
        <java-charset-name>UTF-8</java-charset-name>
    </input-charset>
</charset-params>

<jsp-descriptor>
    <encoding>UTF-8</encoding>
</jsp-descriptor>

在网上。xml我有一个:

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>
...
<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
</jsp-config>

但这些都没有解决问题。

我所有的源文件都是UTF-8编码的。

而且,当我有一个。jsp或。html页面中包含一个汉字,并直接访问它,而不是通过Weblogic中的servlet转发给它,汉字显示正确。

此外,当在我的servlet中,我甚至不执行对jsp的转发,而是直接向响应写入汉字时(使用response.getWriter()。写()),汉字仍然不正确(即使浏览器正确地确定编码是UTF-8)。

为什么它在Tomcat 6中工作,而不是Weblogic 10?如何让角色显示?

共有2个答案

柳墨一
2023-03-14

也许这有帮助

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app>
    <jsp-descriptor>
        <encoding>UTF-8</encoding>
    </jsp-descriptor>
    <charset-params>
        <input-charset>
            <resource-path>/*</resource-path>
            <java-charset-name>UTF-8</java-charset-name>
        </input-charset>
    </charset-params>
</weblogic-web-app>
宰父俊彦
2023-03-14

虽然我不确定为什么向响应中写入字符会直接导致汉字显示不正确,但我已经找出了在转发到jsp页面时导致字符不正确的原因。我转发到的jsp页面执行另一个jsp页面的c:import。Tomcat和Weblogic的处理方式不同。为了确保导入的文件具有正确的编码,我需要在c:import标记中指定属性“characterEncoding=“UTF-8”,这将导致导入的标记以正确的编码输出。对于c:import所依赖的代码,应用程序服务器之间的默认字符编码似乎有所不同(这可能解释了为什么直接从servlet响应中编写字符在Tomcat中可以正常工作,但在Weblogic中却不能)。

 类似资料:
  • 问题内容: 我收到如下错误: Uncaught TypeError:无法读取null的属性’__webglFramebuffer’ 当我转到与附加了Autodesk Viewer的页面链接的另一个页面时。我不知道为什么会这样。我正在为我的网站使用angularjs,该页面的控制器中没有关于查看器的代码。 问题答案: 之所以收到此错误,是因为您没有破坏左页面上的查看器实例,因此当接收到诸如页面大小调

  • 我想向注册用户发送确认邮件。我正在使用php邮件程序和smtp lib类文件向注册用户发送邮件。 但我犯了这个错误。 SMTP-

  • 问题内容: Lucene的新手在这里。我在Java客户端中将它与Hibernate一起使用,并且在特定查询中遇到此错误: 搜索适用于所有其他查询,即使结果集为空。我的测试数据库确实具有“ a”的记录。这有什么问题吗? 问题答案: “ a”是停用词,StandardAnalyzer会将其从查询中过滤掉。停用词是在您使用的搜索语言中足够普遍的词,并且对生成搜索结果没有意义。这是一个简短的列表,但是“

  • 问题是 我使用的是和 我成功地重新安装了npm_modules,但是还没有修复我处理的内容。 然后,任务“scripts-javascript-dist”从 你能带领我解决这个问题吗? null 我想,我错过了什么,但我认不出是什么。

  • 我在Windows7中有cygwin,下载并安装了maven“二进制文件”,并有以下设置 我错过了什么?