Questo parametro è stato aggiunto ai moduli per forzare Internet Explorer (5, 6, 7 e 8) per codificare i suoi parametri come unicode.
In particolare, questo errore può essere attivato se l'utente passa la codifica del browser su Latin-1. Per capire perché un utente decida di fare qualcosa di apparentemente così pazzo, dai un'occhiata a this google search. Una volta che l'utente ha inserito il sito Web in modalità Latin-1, se utilizza caratteri che possono essere compresi sia Latin-1 che Unicode (ad esempio, é o ç, comune nei nomi), Internet Explorer li codificherà in latino -1.
Ciò significa che se un utente cerca "Ché Guevara", verrà erroneamente visualizzato sul lato server. In Ruby 1.9, questo si tradurrà in un errore di codifica quando il testo entra inevitabilmente nel motore delle espressioni regolari. In Ruby 1.8, si otterranno risultati non funzionanti per l'utente.
Creando un parametro che può essere compreso solo da IE come carattere unicode, stiamo costringendo IE a esaminare l'attributo accept-charset, che quindi dice di codificare tutti i caratteri come UTF-8, anche quelli che può essere codificato in Latin-1.
Tenete a mente che in Ruby 1.8, è estremamente banale per ottenere Latin-1 i dati nel database UTF-8 (dal nulla in tutta controlli pila che i byte che l'utente ha inviato in qualsiasi punto sono validi Caratteri UTF-8). Di conseguenza, è estremamente comune per le applicazioni di Ruby (e applicazioni PHP, ecc. Ecc.) Mostrare questo bug rivolto all'utente, e quindi estremamente comune per gli utenti provare a modificare la codifica come misura palliativa.
Detto questo, quando ho scritto questa patch, non mi sono reso conto che il nome del parametro sarebbe mai apparso in un posto rivolto all'utente (lo fa con i moduli che utilizzano l'azione GET, come i moduli di ricerca) . Dato che lo fa, rinomineremo questo parametro a _e
e useremo un carattere unicode dall'aspetto innocuo.
Questo è un tipo di documentazione 'Domande e risposte - Ho cercato di trovare una risposta qui e ho finito per scavare attraverso i messaggi di commit quindi ho pensato di condividerlo per altri che si stanno chiedendo il pupazzo di neve ... –
Vedi anche [questo] (http://programmers.stackexchange.com/q/168751/37622). – MasterMastic