2016-04-05 11 views
-1

Ich habe ein Codierungsproblem in meinen Servlets.Konfigurieren von Zeichensatz zum Entschlüsseln von Abfrageparametern in WebLogic

Ich nenne meine Servlet wie folgt aus:

http://myserver.com/myapp/myservlet?p=%d6 

%d6 der codierte Wert für Ö ist.

In meinem Servlet kann ich folgendes:

public void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws IOException, ServletException { 

    String s = request.getCharacterEncoding(); // Returns null 

    //request.setCharacterEncoding("ISO-8859-1"); // If I uncomment this line, p will be Ö. 
    String p = request.getParameter("p"); // Returns ý 

    ... 

ich die Zeichenkodierung über die Konfiguration festlegen möchten und nicht über Code.

Ich habe das in weblogic.xml folgend versucht, aber es hatte keine Wirkung in diesem Fall:

<charset-params> 
    <input-charset> 
     <resource-path>*</resource-path> 
     <java-charset-name>ISO-8859-1</java-charset-name> 
    </input-charset> 
</charset-params> 

Wie konfiguriere ich WebLogic die Codierung ISO-8859-1 für request.getParameter zu benutzen?

Antwort

3

In Ihrem weblogic.xml, versuchen Sie folgendes:

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

dass, ISO8859_1 ist statt ISO-8859-1 verwenden.

+0

Hatte das gleiche Problem und diese Antwort hat es genagelt. Seltsamerweise sollte man '' auf 'ISO8859_1' in einem' 'in [weblogic-application.xml] setzen (http://docs.oracle.com/middleware/1213/wls/ WLPRG/app_xml.htm # r6c1-t2) hat nicht funktioniert, selbst das Setzen von '' auf 'false'. Irgendein Hinweis warum? –

Verwandte Themen