Ruby on Rails, Ajax y caracteres especiales
Publicado por Aníbal Rojas 3 Enero 2006 en Rails, Ruby, i18n / l10n.Estas desarrollando tu aplicación con Ruby on Rails, y todo marcha bien en lo que ha manejo de los caracteres especiales se refiere. Pero cuando empiezas a especiar un poco las interfaz te das cuenta de que los caracteres especiales ingresados en las formas que son enviadas vía Ajax se estan almacenando mal en la base de datos (que en este caso no es UTF-8) ¿Qué haces?
Sencillo, te lees Ajax and Character Sets en
Explorations… , blog de Sebastian Kanthak lo que te permite:
- Modificar la clase
Hashpara que soporte la conversion de los valores vía la libreríaiconv. - Agregar un
before_filteraApplicationControllerpara disparar esta conversion sobre los parámetros HTTP (@params) - Y en cada
ActionControllerque lo requiera especificar las acciones que son Ajax para que el filter las procese.
Al parecer el problema es que la implementación de Ajax en Ruby on Rails tiene hardcoded el encoding UTF-8. Después de este parche queda revisar bien que es lo que está pasando “bajo el capó” como decimos en Venezuela.
Lo había leido antes que los tools Ajax de RubyOnRails tenían hardcoded el encoding en UTF-8, buena la solución del before_filter.
Yo tenia este probema con los caracteres tenia en una tabla la info, y al presentarla con ajax los caraceteres como acento,ñ,etc no aparecian.
Ejem de solucion.
$a=tenía; // veamos acento en la í
//para mostrarlo con ajax sería
echo utf8_encode($a);
?>
Éxito muchachos !