Este parámetro se agregó a los formularios para forzar Internet Explorer (5, 6, 7 y 8) para codificar sus parámetros como unicode.
Específicamente, este error se puede activar si el usuario cambia la codificación del navegador a Latin-1. Para entender por qué un usuario decidiría hacer algo aparentemente tan loco, echa un vistazo a this google search. Una vez que el usuario ha puesto el sitio web en modo Latin-1, si utilizan caracteres que pueden entenderse como Latin-1 y Unicode (por ejemplo, é o ç, comunes en los nombres), Internet Explorer los codificará en latín -1.
Esto significa que si un usuario busca "Ché Guevara", entrará incorrectamente en el lado del servidor. En Ruby 1.9, esto dará como resultado un error de codificación cuando el texto inevitablemente se abre paso en el motor de expresiones regulares. En Ruby 1.8, dará como resultado resultados rotos para el usuario.
Al crear un parámetro que solo puede ser entendido por IE como unicode, estamos forzando a IE a mirar el atributo accept-charset, que luego le dice que codifique todos los caracteres como UTF-8, incluso que se puede codificar en Latin-1.
Tenga en cuenta que en Ruby 1.8, es extremadamente trivial para obtener Latin-1 datos en su base de datos UTF-8 (desde nada en todo los controles de pila que los bytes que el usuario envió en cualquier punto son válidos Caracteres UTF-8). Como resultado, es extremadamente común que las aplicaciones de Ruby (y las aplicaciones de PHP, etc.) muestren este error de usuario y, por lo tanto, es muy común que los usuarios intenten cambiar la codificación como medida paliativa.
Dicho todo esto, cuando escribí este parche, no me di cuenta de que el nombre del parámetro aparecería alguna vez en un lugar de usuario (lo hace con formularios que usan la acción GET, como formularios de búsqueda) . Como lo hace, cambiaremos el nombre de este parámetro a _e
y usaremos un carácter Unicode de aspecto más inofensivo.
Este es un tipo de preguntas y respuestas sobre 'documentación' - traté de encontrar una respuesta aquí y terminé revisando los mensajes de compromiso, así que pensé en compartirlo aquí para otros que se estén preguntando sobre el muñeco de nieve ... –
Ver también [esto] (http://programmers.stackexchange.com/q/168751/37622). – MasterMastic