3 Replies Latest reply on May 1, 2012 6:10 AM by japochino1

    Incorrect chars when submitting a form

    japochino1

      Hello

       

      I have a form and when I submit it, the fields containing special chars (like á,é,í,ó,ú) change to strange values.

       

      For example:

       

      á -> á

      é -> é

      í -> Ã

      ...

       

      Why?

       

      May I change the charset somewhere?

       

      Please help.

       

      Thanks

        • 1. Re: Incorrect chars when submitting a form
          fabiovc27

          Sounds like a character encoding issue.

           

          make sure you're setting the character encoding in your application. 

          are you writing to a file from java?

          If so use -Dfile.encoding=UTF-8

           

          are you writing to a database? 

          if so, there might be some properties you need to set in your connection string... for example in our MySQL connection string we had to modify the connection string to be as follows :

          jdbc:mysql://${host}${port}/${db_name}?useUnicode=true&characterEncoding=UTF-8

           

          hope that helps

          -fv

          • 2. Re: Incorrect chars when submitting a form
            japochino1

            I want to persist into a database but the character changes BEFORE they are persisted to the database.

             

            I noticed this when I debug, I click the submit button and before the call to the method that make the persist, the data are already wrong.

            • 3. Re: Incorrect chars when submitting a form
              japochino1

              Finally I found in the Internet a solution with a Filter and the method:

               

               

              ...

              private static String ENCODING = "UTF-8";

              ...

               

              public void doFilter(ServletRequest request, ServletResponse response,

                          FilterChain chain) throws IOException, ServletException {

                      System.out.println("CharacterEncodingFilter... doFilter");

                      request.setCharacterEncoding(ENCODING);

                      response.setCharacterEncoding(ENCODING);

                      chain.doFilter(request, response);

                  }

               

               

              But I think it should exists a more eficient way to do this!?

               

              Thank you very much