Problemas en forms y palabras con acento

35 views
Skip to first unread message

Luis Manuel Sala Espiell

unread,
Aug 5, 2011, 10:24:21 AM8/5/11
to katar...@googlegroups.com
Hola,

Estoy con problemas al momento de hacer un request al servidor pasándole palabras con acento. Tengo simplemente un form con un input que pega contra una una URL de un controller, pero cuando le paso una palabra con acento hace cosas raras.

Si yo pongo "canción", al controller llega "canci?", y si pongo una letra con acento únicamente, por ejemplo "í", al controller llega un string vacío. Tiene algo que ver con la configuración del charset de katari por casualidad? Alguien sabe donde cambiarlo eso?

Gracias,

--


Matias Mirabelli

unread,
Aug 5, 2011, 11:00:57 AM8/5/11
to katar...@googlegroups.com
Hola Luis,

Fijate si en la sección "<head>" del HTML que está en el archivo "main.dec" (el decorator de sitemesh) está definida la meta tag que especifica el charset:

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

También verificá que el DOCTYPE esté definido al principio del main.dec:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

Saludos,

Matías


2011/8/5 Luis Manuel Sala Espiell <luis...@globant.com>

--
You received this message because you are subscribed to the Google Groups "katari-user" group.
To post to this group, send email to katar...@googlegroups.com.
To unsubscribe from this group, send email to katari-user...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/katari-user?hl=en.

Luis Manuel Sala Espiell

unread,
Aug 5, 2011, 11:27:53 AM8/5/11
to katar...@googlegroups.com
Esta definido de esa manera todo, pero sigue levantandolo mal.

Pablo Graña

unread,
Aug 5, 2011, 12:57:29 PM8/5/11
to katar...@googlegroups.com
Fijate en que charset asume el browser que esta el contenido (tools ->
encoding en mi version de chrome). Normalmente (creo que no es
estandar, pero parece ser el comportamiento aceptado), si tenes un
form embebido en un html con el encoding X, el browser postea en ese
mismo encoding.

En katari asumimos que todo esta en utf-8. En mi experiencia, es lo
mas comodo, aunque hay gente que no le gusta. Por eso hay un filtro
UtfEncodingFilter que hace:

request.setCharacterEncoding("UTF-8");

al principio del request. La alterativa es usar el encoding por
default, cosa que es mucho menos determinista.

Si el browser dice que el contenido esta en utf-8, hay que ver por que
esta posteando en algo que no es utf. Como se hace el post al server?
Con un formulario? Javascript?

Si es un formulario, no deberia estar el atributo 'accept-charset' (o
deberia ser utf-8).

Despues, fijate en el trafico de red (chormiun-browser o firebug), si
el browser esta mandando un charset diferente a utf-8.

Finalmente, fijate si tenes un filtro en el web.xml antes de los
filtros de katari. La configuracion del charset en java 'entra en
vigor' la primera vez que accedes a un parametro
(request.getParameter()). Si tenes un filtro que llama a getParameter
antes que katari llame a setCharacterEncoding, entonces el encoding
que queda es el default de la plataforma, y el setChararcterEncoding
que hace katari se pierde en el eter.

saludos

2011/8/5 Luis Manuel Sala Espiell <luis...@globant.com>
>
> Esta definido de esa manera todo, pero sigue levantandolo mal.
>
> El 5 de agosto de 2011 12:00, Matias Mirabelli <matias.m...@globant.com> escribió:
>>
>> Hola Luis,
>> Fijate si en la sección "<head>" del HTML que está en el archivo "main.dec" (el decorator de sitemesh) está definida la meta tag que especifica el charset:
>> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
>> También verificá que el DOCTYPE esté definido al principio del main.dec:
>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
>>   "http://www.w3.org/TR/html4/strict.dtd">
>> Saludos,
>> Matías
>>
>> 2011/8/5 Luis Manuel Sala Espiell <luis...@globant.com>
>>>
>>> Hola,
>>> Estoy con problemas al momento de hacer un request al servidor pasándole palabras con acento. Tengo simplemente un form con un input que pega contra una una URL de un controller, pero cuando le paso una palabra con acento hace cosas raras.
>>> Si yo pongo "canción", al controller llega "canci?", y si pongo una letra con acento únicamente, por ejemplo "í", al controller llega un string vacío. Tiene algo que ver con la configuración del charset de katari por casualidad? Alguien sabe donde cambiarlo eso?
>>> Gracias,
>>>
>>> --
>>>

>>> Luis Manuel Sala Espiell
>>> SW Developer
>>> +54 11 4109 1700 ext. 7937
>>> +54 221 445 0290 ext. 7937
>>> luis...@globant.com
>>>

>>> --
>>> You received this message because you are subscribed to the Google Groups "katari-user" group.
>>> To post to this group, send email to katar...@googlegroups.com.
>>> To unsubscribe from this group, send email to katari-user...@googlegroups.com.
>>> For more options, visit this group at http://groups.google.com/group/katari-user?hl=en.
>>
>> --
>> You received this message because you are subscribed to the Google Groups "katari-user" group.
>> To post to this group, send email to katar...@googlegroups.com.
>> To unsubscribe from this group, send email to katari-user...@googlegroups.com.
>> For more options, visit this group at http://groups.google.com/group/katari-user?hl=en.
>
>
>
> --
>

> --
> You received this message because you are subscribed to the Google Groups "katari-user" group.
> To post to this group, send email to katar...@googlegroups.com.
> To unsubscribe from this group, send email to katari-user...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/katari-user?hl=en.

--
Pablo Gra\~na
Chief Architect
Globant
Arg Office: +54 (11) 4109 1743
UK  Office: +44 (20) 7043 8269 int 8043
US  Office: +1 (212) 400 7686 int 8043

Reply all
Reply to author
Forward
0 new messages