2012-03-14 12 views
7

Pozwól mi podzielić się moim wyjątkowym rozczarowaniem z najważniejszymi punktami 3.1, do tej pory ... Używam składników FBI w aplikacji RichFaces, wszystko dobrze, gdy zdałem sobie sprawę, problem, niektóre znaki w moim języku ojczystym są wyświetlane źle, nawet Zestaw znaków UTF-8 jest zadeklarowany we wszystkich miejscach i wiem, że jest wymagany.Jak ustawić zestaw znaków w pierwotnej aplikacji internetowej?

Problem pojawia się, gdy wprowadzono znak specjalny, taki jak "São Paulo" w a, a następnie przesłano stronę. Dane po przedstawienia jest ponownie wyświetlone jako "SAA £ o Paulo"

Próbowałem już folowing obejście:

1) Eclipse IDE: file opcję Tekst enconding

2) JSF pliki:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

3) JBOSS server.xml:

<Connector protocol="HTTP/1.1" URIEncoding="UTF-8" port="${jboss.web.http.port}" address="0.0.0.0" 
     redirectPort="${jboss.web.https.port}" /> 

4) web.xml:

<?xml version="1.0" encoding="UTF-8"?> 

5) JSF plik:

<h:form acceptcharset="UTF-8" enctype="application/form-data"> 

6) uaktualnić wersję primefaces 3,2

dzięki za pomoc! ;-)

+1

Warto zauważyć, że PrimeFaces 3.2 został wydany. Nie wiem, czy to rozwiąże twój problem, ale chyba nie zaszkodzi spróbować. –

+0

próbowałem tego teraz, nie rozwiązuje mojego problemu ... thanx w każdym razie! – Guilherme

+1

Czy używasz RichFaces lub PrimeFaces? Krzyknąłeś "RICHFACES", co jest dość mylące. Jeśli RichFaces używasz JSP lub Facelets? Opisz problem bardziej szczegółowo, nie jest jasne, jak i gdzie dokładnie występuje problem. Opisz szczegółowo kroki, aby odtworzyć problem. Opisz szczegółowo oczekiwane/nieoczekiwane wyniki. Na przykład. "Wprowadziłem XYZ w' h: inputText', po przesłaniu go ponownie wyświetla jako ZYX w 'h: outputText' i tak dalej. – BalusC

Odpowiedz

9

Byłem zmuszony utworzyć filtr, który określa zestaw znaków dla każdego żądania ...

public class CharacterEncodingFilter implements Filter { 

    @Override 
    public void destroy() { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void doFilter(ServletRequest request, ServletResponse response, 
     FilterChain chain) throws IOException, ServletException { 
     response.setCharacterEncoding("UTF-8"); 
     request.setCharacterEncoding("UTF-8"); 
     chain.doFilter(request, response); 
    } 

    @Override 
    public void init(FilterConfig arg0) throws ServletException { 
     // TODO Auto-generated method stub 
    } 

} 

to rozwiąże mój problem

1

Właśnie znak komentarza tę część w conf/web.xml (serwer Tomcat web.xml), który filtruje wszystkie żądania i dokonuje konwersji do UTF-8.

<!-- A filter that sets character encoding that is used to decode URIs--> 
<!-- parameters in a POST request --> 
<filter> 
     <filter-name>setCharacterEncodingFilter</filter-name> 
     <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> 
     <init-param> 
      <param-name>encoding</param-name> 
      <param-value>UTF-8</param-value> 
     </init-param> 
</filter> 

    <!-- The mapping for the Set Character Encoding Filter --> 
    <filter-mapping> 
     <filter-name>setCharacterEncodingFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
Powiązane problemy