Chinesische UTF-8-Zeichen erscheinen nicht richtig in Weblogic 10.3, aber nicht Tomcat 6

Entwickle ich eine Webseite mit Java EE und Spring, der muss Ausgabe chinesischen UTF-8-Zeichen. Ich habe ein servlet, das einen Antrag.getRequestDispatcher(...).forward(request,response) auf eine jsp-nach einiger Bearbeitung. In diesem servlet, bevor Sie den vorwärts, ich habe

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

An der Spitze der jsp-Datei (und jede jsp-Datei in mein Projekt), habe ich:

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

Als test habe ich einen chinesischen Zeichensatz UTF-8 fest programmierte on, dass jsp-Seite. Wenn ich mit der Bereitstellung dieser Anwendung auf Tomcat 6 und schlagen das servlet, erkennt der browser die Seite ist UTF-8 und die Ausgänge der chinesischen Zeichen: 采
Wenn ich bereitstellen unter Weblogic 10 und Treffer das servlet, erkennt der browser die Seite ist UTF-8 aber zeigt: éÂÂ

In meinem weblogic-Startskript, ich habe versucht, verschiedene java-Optionen für -Dfile.Codierung wie UTF-8 und utf8, aber die chinesischen Zeichen war verzerrt, unabhängig von der Einstellung.

In weblogic.xml ich habe diese:

<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>

In web.xml ich habe diese:

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>

Aber diese haben das problem nicht gelöst.

Alle meine source-Dateien sind UTF-8 kodiert.

Außerdem, wenn ich eine .jsp oder .html-Seite mit einem chinesischen Zeichen in es, und darauf zugreifen, sondern direkt weitergeleitet wird, um es durch die Servlets in Weblogic, das chinesische Zeichen korrekt angezeigt.

Auch, wenn in meinem servlet, die ich nicht selbst durchführen weiterleiten an die jsp und stattdessen schreiben Sie chinesische Zeichen direkt mit der Antwort (mit Antwort.getWriter().write()), die chinesischen Zeichen immer noch falsch ist (auch wenn der browser richtig bestimmt, die Kodierung ist UTF-8).

Warum funktioniert es in Tomcat 6, aber nicht Weblogic 10? Wie bekomme ich die Zeichen zur Anzeige?

Der JSP-compiler (JSP source encoding) könnte ein Faktor sein, der zu. Versuchen Sie eine u-kodierte Zeichen, wie \uF91F (蘭). Wenn das char dargestellt ist okay, die JSP-Quelle wäre nicht in UTF-8. (Unwahrscheinlich.)

InformationsquelleAutor chairbender | 2013-08-16

Schreibe einen Kommentar